Amazon ECS サービスデプロイのライフサイクルフック
デプロイが開始されると、ライフサイクルステージが進行されます。各ステージは、IN_PROGRESS や SUCCEEDED などの状態になります。ライフサイクルフックを特定の段階で設定して、カスタムロジックを実行したり、デプロイが進む前に決定ポイントを導入したりできます。Amazon ECS は、次の 2 種類のライフサイクルフックに対応しています。
- Lambda フック
-
Amazon ECS は、デプロイの特定の段階で Lambda 関数を呼び出します。関数にはカスタムロジックが含まれており、続行する方法を Amazon ECS に伝えるには
SUCCEEDED、FAILED、またはIN_PROGRESSのhookStatusを含む JSON オブジェクトを返す必要があります。デプロイが進む前に、これらのフックを使用して、検証テストの実行、ガバナンスポリシーの適用、カスタム承認ステップの実装を行うことができます。詳細については、「Amazon ECS サービスデプロイの Lambda フック」を参照してください。 - フックを一時停止する
-
Amazon ECS は、設定されたライフサイクルステージでデプロイを一時停止し、
ContinueServiceDeploymentAPI を呼び出して続行またはロールバックを待ちます。一時停止中は、手動承認、既存ツールとの統合テスト、運用準備チェック、CI/CD パイプラインステップなど、独自のワークフローを外部で実行できます。詳細については、「Amazon ECS サービスデプロイの一時停止フック」を参照してください。
Lambda フックと一時停止フックの両方を同じライフサイクルステージで設定できます。デプロイが次のステージに進む前に、両方のフックを完了する必要があります。
ライフサイクルフックの詳細
デプロイ中にフックがアクティブになると、DescribeServiceDeployments を呼び出してそのステータスを表示できます。レスポンスには、アクティブなフックごとに次のフィールドを持つ lifecycleHookDetails 配列が含まれます。
| フィールド | 説明 |
|---|---|
hookId |
このフック実行の一意の識別子。この値は、一時停止フックの ContinueServiceDeployment を呼び出すときに使用します。 |
targetType |
フックのタイプ: AWS_LAMBDA または PAUSE。 |
targetArn |
フックターゲットの ARN。Lambda フックの場合、これは Lambda 関数 ARN です。一時停止フックの場合、このフィールドは設定されません。 |
status |
フックの現在のステータス: AWAITING_ACTION、IN_PROGRESS、SUCCEEDED、FAILED、または TIMED_OUT。 |
expiresAt |
フックの有効期限が切れる日時。(例: 2026-05-06T12:06:49-07:00) |
timeoutAction |
フックがタイムアウトしたときに Amazon ECS が実行するアクション: ROLLBACK または CONTINUE。 |
ライフサイクルステージのカテゴリ
ライフサイクルステージは 2 つのカテゴリに分類されます。
-
1 回呼び出しステージ – Amazon ECS は、サービスのデプロイ中にこれらのステージを 1 回だけ呼び出します。
RECONCILE_SERVICEPRE_SCALE_UPPOST_SCALE_UPTEST_TRAFFIC_SHIFTPOST_TEST_TRAFFIC_SHIFTPOST_PRODUCTION_TRAFFIC_SHIFT
-
反復呼び出しステージ – Amazon ECS は、サービスのデプロイ中にこれらのステージを複数回呼び出すことができます。線形デプロイとカナリアデプロイの場合、これらのステージはトラフィックシフトの各ステップで呼び出されます。
PRE_PRODUCTION_TRAFFIC_SHIFTPRODUCTION_TRAFFIC_SHIFT
注記
これらのステージはロールバック中に呼び出されるため、一時停止フックを TEST_TRAFFIC_SHIFT または PRODUCTION_TRAFFIC_SHIFT に設定することはできません。ロールバック中に一時停止するには、ロールバックを完了するための追加の ContinueServiceDeployment 呼び出しが必要になります。
フックタイプ別のサポートされているステージ
| ライフサイクルステージ | Lambda フック | フックを一時停止する |
|---|---|---|
RECONCILE_SERVICE |
はい | はい |
PRE_SCALE_UP |
はい | はい |
POST_SCALE_UP |
はい | はい |
TEST_TRAFFIC_SHIFT |
はい | いいえ |
POST_TEST_TRAFFIC_SHIFT |
はい | はい |
PRE_PRODUCTION_TRAFFIC_SHIFT |
はい | はい |
PRODUCTION_TRAFFIC_SHIFT |
はい | いいえ |
POST_PRODUCTION_TRAFFIC_SHIFT |
はい | はい |