Claude Codeでヘルスエンドポイントを設計する:依存サービス確認・Liveness/Readiness・Kubernetes対応
はじめに 「ヘルスチェックが200 OKを返しているのにDBに繋がらない」「Kubernetesがポッドを再起動しすぎる」——適切なLiveness・Readiness・Startupプローブとヘルスエンドポイントを設計し、真に「ヘルシー」な状態だけを報告する設計をClaude Codeに生成させる。 CLAUDE.mdにヘルスエンドポイント設計ルールを書く ## ヘルスエンドポイント設計ル...

Source: DEV Community
はじめに 「ヘルスチェックが200 OKを返しているのにDBに繋がらない」「Kubernetesがポッドを再起動しすぎる」——適切なLiveness・Readiness・Startupプローブとヘルスエンドポイントを設計し、真に「ヘルシー」な状態だけを報告する設計をClaude Codeに生成させる。 CLAUDE.mdにヘルスエンドポイント設計ルールを書く ## ヘルスエンドポイント設計ルール ### エンドポイント分離 - /health/live: Liveness(プロセスが生きているか)→ DBチェック不要 - /health/ready: Readiness(リクエストを処理できるか)→ 全依存サービスをチェック - /health: 管理者向け詳細ステータス(認証必須) ### 依存サービスのチェック - PostgreSQL: SELECT 1でクエリ確認 - Redis: PINGで確認 - 外部API: 軽量なAPIを叩く(ヘルスエンドポイントがあれば使う) - タイムアウト: 各チェック最大2秒 ### キャッシュ - Readinessチェックの結果を5秒キャッシュ(連続チェックでDBを叩かない) - Livenessはキャッシュしない(常に最新状態を報告) ヘルスエンドポイント実装の生成 ヘルスエンドポイントを設計してください。 要件: - Liveness/Readiness/Startupの分離 - 依存サービスの並列チェック - タイムアウト制御 - Kubernetes対応 生成ファイル: src/health/ 生成されるヘルスエンドポイント実装 // src/health/healthChecker.ts — ヘルスチェック export type CheckStatus = 'ok' | 'degraded' | 'down'; export interface CheckResult { name: string; status: CheckStatus; durationMs: number; message?: string; } export interface HealthReport { status: CheckStatus; checks: CheckResult[]; version: string; upt