View a markdown version of this page

Amazon ECS サービスデプロイのライフサイクルフック - Amazon Elastic Container Service

Amazon ECS サービスデプロイのライフサイクルフック

デプロイが開始されると、ライフサイクルステージが進行されます。各ステージは、IN_PROGRESSSUCCEEDED などの状態になります。ライフサイクルフックを特定の段階で設定して、カスタムロジックを実行したり、デプロイが進む前に決定ポイントを導入したりできます。Amazon ECS は、次の 2 種類のライフサイクルフックに対応しています。

Lambda フック

Amazon ECS は、デプロイの特定の段階で Lambda 関数を呼び出します。関数にはカスタムロジックが含まれており、続行する方法を Amazon ECS に伝えるには SUCCEEDEDFAILED、または IN_PROGRESShookStatus を含む JSON オブジェクトを返す必要があります。デプロイが進む前に、これらのフックを使用して、検証テストの実行、ガバナンスポリシーの適用、カスタム承認ステップの実装を行うことができます。詳細については、「Amazon ECS サービスデプロイの Lambda フック」を参照してください。

フックを一時停止する

Amazon ECS は、設定されたライフサイクルステージでデプロイを一時停止し、ContinueServiceDeployment API を呼び出して続行またはロールバックを待ちます。一時停止中は、手動承認、既存ツールとの統合テスト、運用準備チェック、CI/CD パイプラインステップなど、独自のワークフローを外部で実行できます。詳細については、「Amazon ECS サービスデプロイの一時停止フック」を参照してください。

Lambda フックと一時停止フックの両方を同じライフサイクルステージで設定できます。デプロイが次のステージに進む前に、両方のフックを完了する必要があります。

ライフサイクルフックの詳細

デプロイ中にフックがアクティブになると、DescribeServiceDeployments を呼び出してそのステータスを表示できます。レスポンスには、アクティブなフックごとに次のフィールドを持つ lifecycleHookDetails 配列が含まれます。

フィールド 説明
hookId このフック実行の一意の識別子。この値は、一時停止フックの ContinueServiceDeployment を呼び出すときに使用します。
targetType フックのタイプ: AWS_LAMBDA または PAUSE
targetArn フックターゲットの ARN。Lambda フックの場合、これは Lambda 関数 ARN です。一時停止フックの場合、このフィールドは設定されません。
status フックの現在のステータス: AWAITING_ACTIONIN_PROGRESSSUCCEEDEDFAILED、または TIMED_OUT
expiresAt フックの有効期限が切れる日時。(例: 2026-05-06T12:06:49-07:00)
timeoutAction フックがタイムアウトしたときに Amazon ECS が実行するアクション: ROLLBACK または CONTINUE

ライフサイクルステージのカテゴリ

ライフサイクルステージは 2 つのカテゴリに分類されます。

  1. 1 回呼び出しステージ – Amazon ECS は、サービスのデプロイ中にこれらのステージを 1 回だけ呼び出します。

    • RECONCILE_SERVICE

    • PRE_SCALE_UP

    • POST_SCALE_UP

    • TEST_TRAFFIC_SHIFT

    • POST_TEST_TRAFFIC_SHIFT

    • POST_PRODUCTION_TRAFFIC_SHIFT

  2. 反復呼び出しステージ – Amazon ECS は、サービスのデプロイ中にこれらのステージを複数回呼び出すことができます。線形デプロイとカナリアデプロイの場合、これらのステージはトラフィックシフトの各ステップで呼び出されます。

    • PRE_PRODUCTION_TRAFFIC_SHIFT

    • PRODUCTION_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 はい はい