本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
-
指定將流量以兩個增量為單位,從一個版本的部署轉移到另一個版本的規劃。
必要:有條件:如果您將
TimeBasedCanary
指定為流量路由類型,則必須包含TimeBasedCanary
參數。StepPercentage
-
在
TimeBasedCanary
部署的第一個增量中,要轉移的流量百分比。步驟百分比必須是 14% 或更大。必要:否
BakeTimeMins
-
TimeBasedCanary
部署第一次和第二次流量轉移之間的分鐘數。必要:否
TimeBasedLinear
-
指定將流量從一個版本的部署轉移到另一個版本的組態,每個增量之間的分鐘數相等。
必要:有條件:如果您將
TimeBasedLinear
指定為流量路由類型,則必須包含TimeBasedLinear
參數。StepPercentage
-
每個
TimeBasedLinear
部署增量開始時移動的流量百分比。步驟百分比必須是 14% 或更大。必要:否
BakeTimeMins
-
TimeBasedLinear
部署的每個遞增流量轉移之間的分鐘數。必要:否
AdditionalOptions
-
藍/綠部署的其他選項。
必要:否
TerminationWaitTimeInMinutes
-
指定終止藍色資源之前的等待時間 (以分鐘為單位)。
必要:否
LifecycleEventHooks
-
使用生命週期事件勾點指定 CodeDeploy 可呼叫 來驗證部署的 Lambda 函數。針對部署生命週期事件,您可以使用相同的函數或不同的函數。完成驗證測試後,Lambda
AfterAllowTraffic
函數會回呼 CodeDeploy 並交付Succeeded
或 的結果Failed
。如需詳細資訊,請參閱《 使用者指南》中的AppSpec 「勾點」一節。 AWS CodeDeploy必要:否
BeforeInstall
-
在建立替換任務之前,用來執行任務的函數。
必要:否
AfterInstall
-
建立替代任務集後,用來執行任務,且與其中一個目標群組相關的函數。
必要:否
AfterAllowTestTraffic
-
在測試接聽程式將流量轉發至替換任務集後,用來執行任務的函數。
必要:否
BeforeAllowTraffic
-
在第二個目標群組與替換任務集建立關聯後,但在流量轉移到替換任務集前,用來執行任務的函數。
必要:否
AfterAllowTraffic
-
在第二個目標群組將流量轉發至替換任務集後,用來執行任務的函數。
必要:否
ServiceRole
-
的執行角色 CloudFormation ,用於執行藍綠部署。如需必要許可的清單,請參閱 IAM 藍/綠部署的許可。
必要:否
Applications
-
指定 Amazon ECS應用程式的屬性。
必要:是
Target
-
必要:是
Type
-
資源的類型。
必要:是
LogicalID
-
資源的邏輯 ID。
必要:是
ECSAttributes
-
代表 Amazon ECS 應用程式部署各種需求的資源。
必要:是
TaskDefinitions
-
的邏輯 ID AWS::ECS::TaskDefinition 資源來執行包含 Amazon ECS應用程式的 Docker 容器。
必要:是
TaskSets
-
IDs 的邏輯 AWS::ECS::TaskSet 資源,以做為應用程式的任務集。
必要:是
TrafficRouting
-
指定用於流量路由的資源。
必要:是
ProdTrafficRoute
-
供負載平衡器用來將流量導向到您目標群組的接聽程式。
必要:是
Type
-
資源的類型。
AWS::ElasticLoadBalancingV2::Listener
必要:是
LogicalID
-
資源的邏輯 ID。
必要:是
TestTrafficRoute
-
供負載平衡器用來將流量導向到您目標群組的接聽程式。
必要:是
Type
-
資源的類型。
AWS::ElasticLoadBalancingV2::Listener
必要:是
LogicalID
-
資源的邏輯 ID。
必要:否
TargetGroups
-
用作目標群組的資源邏輯 ID,以將流量路由至已登記的目標。
必要:是