【NestJS】ヘルスチェック(v6版)を NestJS 7 へのバージョンアップに伴い、変更した内容になります。
環境
NestJS 6 時代は、godaddy/terminus
が必要でしたが、7 から依存が排除されています。
インストール
yarn add @nestjs/terminus --no-optional
// or
npm install --save @nestjs/terminus --no-optional
実装
- ほとんど、↓のページに書いている通りです。
const dbConfig = config.get('database')
とそれに関連する箇所は、各環境に応じて変更してください。src/health/health.module.ts
に置いていますが、場所は任意です。
src/health/health.module.ts
importconfigfrom'@config'import{Controller,Get,Module}from'@nestjs/common'import{HealthCheck,HealthCheckResult,HealthCheckService,HealthIndicatorResult,TerminusModule,TypeOrmHealthIndicator,}from'@nestjs/terminus'import{TypeOrmModule}from'@nestjs/typeorm'@Controller('healthz')exportclassHealthController{constructor(privatereadonlyhealth:HealthCheckService,privatereadonlydb:TypeOrmHealthIndicator){}@Get()@HealthCheck()healthCheck():Promise<HealthCheckResult>{returnthis.health.check([// Set the timeout for a response to 300ms():Promise<HealthIndicatorResult>=>this.db.pingCheck('database',{timeout:300}),])}}constdbConfig=config.get('database')@Module({imports:[TerminusModule,TypeOrmModule.forRoot(dbConfig)],providers:[],controllers:[HealthController],})exportclassHealthRestModule{}
上記以外の設定
【NestJS】ヘルスチェック(v6版)を参考にしてください。