|
1 | | -## Nuxtサーバーだけのヘルスチェック |
| 1 | +## NuxtサーバーとBFFを含めたヘルスチェック |
2 | 2 |
|
3 | | -BFF を意識せずに `Nuxt サーバーだけ` のヘルスチェックをするなら `static` な画像ファイルを参照するの楽ちんです! |
| 3 | +Nuxt サーバーからさらに `BFF の API サーバーまでの疎通` を含めたヘルスチェックになります。 |
| 4 | + |
| 5 | +[typescript-nuxtjs-boilerplate/healthcheck.js at master · typescript-nuxtjs-boilerplate/typescript-nuxtjs-boilerplate](https://github.com/typescript-nuxtjs-boilerplate/typescript-nuxtjs-boilerplate/blob/master/src/api/healthcheck.js) |
| 6 | + |
| 7 | +```javascript |
| 8 | +// https://ja.nuxtjs.org/api/configuration-servermiddleware/ |
| 9 | +const axios = require('axios') |
| 10 | + |
| 11 | +const HEALTHCHECK_PATH = '/healthcheck' |
| 12 | + |
| 13 | +// 関数の仕様はこちら |
| 14 | +// https://github.com/senchalabs/connect#appusefn |
| 15 | +module.exports = (req, res, next) => { |
| 16 | + console.log('/start healthcheck---') |
| 17 | + |
| 18 | + let internalHealthcheckUrl |
| 19 | + |
| 20 | + if (process.env.BUILD_ENV === 'docker') { |
| 21 | + /** docker のビルド環境の環境変数から値を取ってくる */ |
| 22 | + internalHealthcheckUrl = `${process.env.internalEndpointUrl}${HEALTHCHECK_PATH}` |
| 23 | + } else { |
| 24 | + /** docker でビルドされていない場合は、 .env.local から値を取ってくる */ |
| 25 | + internalHealthcheckUrl = `http://localhost:5000${HEALTHCHECK_PATH}` |
| 26 | + } |
| 27 | + console.log('internalHealthcheckUrl:', internalHealthcheckUrl) |
| 28 | + |
| 29 | + res.writeHead(200, { |
| 30 | + 'Content-Type': 'text/plain' |
| 31 | + // 'Content-Type': 'application/json' |
| 32 | + }) |
| 33 | + |
| 34 | + axios.get(`${internalHealthcheckUrl}`).then(response => { |
| 35 | + console.log(response.data) |
| 36 | + console.log(response.status) |
| 37 | + |
| 38 | + // res.writeHead を使う場合は、 end しか使えない |
| 39 | + // https://qiita.com/kukimo/items/e686d480209464c6372f |
| 40 | + // res.write('ok') |
| 41 | + res.end('ok') |
| 42 | + }) |
| 43 | + |
| 44 | + console.log('/end healthcheck---') |
| 45 | + |
| 46 | + // このミドルウェアがレスポンスを返さず、次に処理を移譲させるなら next() を実行すること |
| 47 | + // https://expressjs.com/en/guide/writing-middleware.html |
| 48 | + // next() |
| 49 | +} |
| 50 | +``` |
4 | 51 |
|
5 | | -[typescript-nuxtjs-boilerplate/healthcheck.png at master · typescript-nuxtjs-boilerplate/typescript-nuxtjs-boilerplate](https://github.com/typescript-nuxtjs-boilerplate/typescript-nuxtjs-boilerplate/blob/master/src/static/healthcheck.png) |
|
0 commit comments