AWS::CodeDeploy::BlueGreen フック構文 - AWS CloudFormation

AWS::CodeDeploy::BlueGreen フック構文

次の構文は、ECS ブルー/グリーンデプロイの AWS::CodeDeploy::BlueGreen フックの構造を示しています。

構文

"Hooks": { "Logical ID": { "Type": "AWS::CodeDeploy::BlueGreen", "Properties": { "TrafficRoutingConfig": { "Type": "Traffic routing type", "TimeBasedCanary": { "StepPercentage": Integer, "BakeTimeMins": Integer }, "TimeBasedLinear": { "StepPercentage": Integer, "BakeTimeMins": Integer } }, "AdditionalOptions": {"TerminationWaitTimeInMinutes": Integer}, "LifecycleEventHooks": { "BeforeInstall": "FunctionName", "AfterInstall": "FunctionName", "AfterAllowTestTraffic": "FunctionName", "BeforeAllowTraffic": "FunctionName", "AfterAllowTraffic": "FunctionName" }, "ServiceRole": "CodeDeployServiceRoleName", "Applications": [ { "Target": { "Type": "AWS::ECS::Service", "LogicalID": "Logical ID of AWS::ECS::Service" }, "ECSAttributes": { "TaskDefinitions": [ "Logical ID of AWS::ECS::TaskDefinition (Blue)", "Logical ID of AWS::ECS::TaskDefinition (Green)" ], "TaskSets": [ "Logical ID of AWS::ECS::TaskSet (Blue)", "Logical ID of AWS::ECS::TaskSet (Green)" ], "TrafficRouting": { "ProdTrafficRoute": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "LogicalID": "Logical ID of AWS::ElasticLoadBalancingV2::Listener (Production)" }, "TestTrafficRoute": { "Type": "AWS::ElasticLoadBalancingV2::Listener", "LogicalID": "Logical ID of AWS::ElasticLoadBalancingV2::Listener (Test)" }, "TargetGroups": [ "Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Blue)", "Logical ID of AWS::ElasticLoadBalancingV2::TargetGroup (Green)" ] } } } ] } } }

プロパティ

論理 ID (論理名とも呼ばれます)

テンプレートの Hooks セクションで宣言されたフックの論理 ID。論理 ID は英数字(A-Za-z0-9)とし、テンプレート内で一意である必要があります。

必須: はい

Type

フックのタイプ。AWS::CodeDeploy::BlueGreen

必須: はい

Properties

フックのプロパティ。

必須: はい

TrafficRoutingConfig

トラフィックルーティングの構成値。

必須: いいえ

デフォルトの構成は、時間ベースの canary トラフィックシフトで、15% のステップ率と 5 分間のベイク時間があります。

Type

デプロイ構成で使用されるトラフィックシフトのタイプ。

有効値: AllAtOnce | TimeBasedCanary | TimeBasedLinear

必須: はい

TimeBasedCanary

デプロイの 1 つのバージョンから別のバージョンにトラフィックを 2 つずつシフトする構成を指定します。

必須: 条件付き: TimeBasedCanary をトラフィックルーティングタイプとして指定する場合、TimeBasedCanary パラメータを含める必要があります。

StepPercentage

TimeBasedCanary デプロイの最初の増分でシフトするトラフィックの割合。ステップの割合は 14% 以上である必要があります。

必須: いいえ

BakeTimeMins

TimeBasedCanary デプロイの 1 番目と 2 番目のトラフィックシフトの間の分数。

必須: いいえ

TimeBasedLinear

1 つのデプロイバージョンから別のデプロイバージョンにトラフィックを同じ増分で、各増分間隔を分単位でシフトする構成を指定します。

必須: 条件付き: TimeBasedLinear をトラフィックルーティングタイプとして指定する場合、TimeBasedLinear パラメータを含める必要があります。

StepPercentage

TimeBasedLinear デプロイの各増分開始時にシフトされるトラフィックの割合。ステップの割合は 14% 以上である必要があります。

必須: いいえ

BakeTimeMins

TimeBasedLinear デプロイの各増分トラフィックシフト間隔 (分)。

必須: いいえ

AdditionalOptions

ブルー/グリーンデプロイの追加オプション。

必須: いいえ

TerminationWaitTimeInMinutes

ブルーリソースを終了するまでの待機時間を分単位で指定します。

必須: いいえ

LifecycleEventHooks

ライフサイクルイベントフックを使用して、CodeDeploy がデプロイを検証するために呼び出すことができる Lambda 関数を指定します。デプロイライフサイクルイベントに対して、同じ関数または別の関数を使用することもできます。検証テストが完了すると、Lambda AfterAllowTraffic 関数は CodeDeploy を呼び戻し、Succeeded または Failed の結果を配信します。詳細については、「AWS CodeDeploy ユーザーガイド」の「AppSpec の『フック』セクション」を参照してください。

必須: いいえ

BeforeInstall

置き換えタスクセットが作成される前にタスクを実行するために使用する関数。

必須: いいえ

AfterInstall

置き換えタスクセットが作成され、ターゲットグループの 1 つがそれに関連付けられた後、タスクを実行するために使用する関数。

必須: いいえ

AfterAllowTestTraffic

テストリスナーが置き換えタスクセットにトラフィックを提供した後、タスクを実行するために使用する関数。

必須: いいえ

BeforeAllowTraffic

2 番目のターゲットグループが置き換えタスクセットに関連付けられた後、トラフィックが置き換えタスクセットに移行される前に、タスクを実行するために使用する関数。

必須: いいえ

AfterAllowTraffic

2 番目のターゲットグループが置き換えタスクセットにトラフィックを提供した後、タスクを実行するために使用する関数。

必須: いいえ

ServiceRole

ブルー/グリーンデプロイの実行に使用する CloudFormation の実行ロール。必要なアクセス許可のリストについては、「ブルー/グリーンデプロイ用の IAM 許可」を参照してください。

必須: はい

Applications

Amazon ECS アプリケーションのプロパティを指定します。

必須: はい

Target

必須: はい

Type

リソースのタイプ。

必須: はい

LogicalID

リソースの論理 ID。

必須: はい

ECSAttributes

Amazon ECS アプリケーションデプロイのさまざまな要件を表すリソース。

必須: はい

TaskDefinitions

Amazon ECS アプリケーションを含む Docker コンテナを実行するための AWS::ECS::TaskDefinition リソースの論理 ID。

必須: はい

TaskSets

アプリケーションのタスクセットとして使用する AWS::ECS::TaskSet リソースの論理 ID。

必須: はい

TrafficRouting

トラフィックルーティングに使用するリソースを指定します。

必須: はい

ProdTrafficRoute

ターゲットグループにトラフィックを指示するためのロードバランサーにより使用されるリスナー。

必須: はい

Type

リソースのタイプ。AWS::ElasticLoadBalancingV2::Listener

必須: はい

LogicalID

リソースの論理的な ID。

必須: はい

TestTrafficRoute

ターゲットグループにトラフィックを指示するためのロードバランサーにより使用されるリスナー。

必須: はい

Type

リソースのタイプ。AWS::ElasticLoadBalancingV2::Listener

必須: はい

LogicalID

リソースの論理的な ID。

必須: いいえ

TargetGroups

登録されたターゲットにトラフィックをルーティングするためのターゲットグループとして使用するリソースの論理 ID。

必須: はい