本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
CreationPolicy
屬性
將 CreationPolicy
屬性與 資源建立關聯,以防止其狀態達到建立完成,直到 AWS CloudFormation 收到指定數量的成功訊號或超過逾時期間為止。若要發出資源訊號,您可以使用 cfn-signal 協助程式指令碼或 SignalResource API. 會將有效的訊號 CloudFormation 發佈至堆疊事件,以便您追蹤傳送的訊號數量。
建立政策只會在 CloudFormation 建立相關聯的資源時叫用。目前,支援建立政策的唯一 CloudFormation 資源是:
當您希望在繼續建立堆疊前等待資源組態動作時,請使用 CreationPolicy
屬性。例如,如果您在EC2執行個體上安裝和設定軟體應用程式,則可能需要先執行這些應用程式,然後再繼續。在這種案例下,您可以新增 CreationPolicy
屬性至執行個體,然後在安裝和設定應用程式之後傳送成功訊號至執行個體。如需詳細的 Amazon EC2範例,請參閱 在 Amazon 上部署應用程式 EC2。
AppStream 2.0 建立政策
建立政策的 Amazon AppStream 組態。
語法
JSON
{ "CreationPolicy": { "StartFleet": { "Type": "
Boolean
" } } }
YAML
CreationPolicy: StartFleet: Type:
Boolean
StartFleet
-
啟動指定機群。
必要:否
Amazon EC2 Auto Scaling 建立屬性
建立政策的 Amazon EC2 Auto Scaling 組態。
語法
JSON
"CreationPolicy" : { "AutoScalingCreationPolicy" : { "MinSuccessfulInstancesPercent" :
Integer
}, "ResourceSignal" : { "Count" :Integer
, "Timeout" :String
} }
YAML
CreationPolicy: AutoScalingCreationPolicy: MinSuccessfulInstancesPercent:
Integer
ResourceSignal: Count:Integer
Timeout:String
Amazon EC2 Auto Scaling 建立屬性
建立政策的 Amazon EC2 Auto Scaling 組態。
AutoScalingCreationPolicy
-
對於新的 Amazon EC2 Auto Scaling 群組, 會指定在將群組的狀態設定為 之前,必須發出成功訊號的執行個體數量
CREATE_COMPLETE
。MinSuccessfulInstancesPercent
-
指定 Amazon EC2 Auto Scaling 中必須將群組狀態設定為 之前,必須發出成功訊號的執行個體百分比
CREATE_COMPLETE
。您可以指定從0
到100
. CloudFormation rounds 到最接近百分之十的值。例如,如果建立 5 個執行個體,最低成功百分比為50
,則必須有 3 個執行個體傳送成功訊號。如果執行個體未在Timeout
屬性指定的時間內傳送訊號, 會 CloudFormation 假設執行個體未建立。預設:
100
類型:整數
必要:否
ResourceSignal
-
當 CloudFormation 建立相關聯的資源時, 會設定所需的成功訊號數量,以及 CloudFormation 等待這些訊號的時間長度。
Count
-
在將資源狀態設定為 之前, CloudFormation 必須接收的成功訊號數量
CREATE_COMPLETE
。如果資源在逾時期間到期之前收到失敗訊號或未收到指定數量的訊號,資源建立會失敗並 CloudFormation 轉返堆疊。預設:
1
類型:整數
必要:否
Timeout
-
CloudFormation 等待
Count
屬性中指定的訊號數量的時間長度。逾時期間會在 CloudFormation 穩定資源後開始,逾時的過期時間不會早於您指定的時間,但可能會在之後不久發生。您可以指定的時間上限是 12 小時。值的ISO86持續時間格式必須為 01
,格式 #
為:PT
,其中每個值分別為小時、分鐘和秒數。如需取得最佳結果,請指定可讓您的執行個體擁有充裕時間啟動及執行的時間期間。較短的逾時可能會導致復原。#
H#
M#
S預設:
PT5M
(5 分鐘)類型:字串
必要:否
範例
Auto Scaling 群組
下列範例示範如何將建立政策新增至 Amazon EC2 Auto Scaling 群組。建立政策需要三個成功訊號,並會在 15 分鐘之後逾時。使用 cfn-signal 協助程式指令碼,在執行個體建立程序成功完成時發出訊號。
若要讓執行個體在 Elastic Load Balancing 運作狀態檢查傳送成功訊號前等待,請使用 cfn-init 協助程式指令碼新增運作狀態檢查驗證。如需範例,請參閱 儲存GitHub 庫verify_instance_health
命令。
JSON
"AutoScalingGroup": { "Type": "AWS::AutoScaling::AutoScalingGroup", "Properties": { "VPCZoneIdentifier":[ "
subnetIdAz1
", "subnetIdAz2
", "subnetIdAz3
" ], "LaunchTemplate":{ "LaunchTemplateId":{ "Ref":"logicalName
" }, "Version":{ "Fn::GetAtt":[ "logicalName
", "LatestVersionNumber" ] } }, "MinSize": "1", "MaxSize": "4" }, "CreationPolicy": { "ResourceSignal": { "Count": "3", "Timeout": "PT15M" } } }
YAML
AutoScalingGroup: Type: AWS::AutoScaling::AutoScalingGroup Properties: VPCZoneIdentifier: -
subnetIdAz1
-subnetIdAz2
-subnetIdAz3
LaunchTemplate: LaunchTemplateId: !ReflogicalName
Version: !GetAttlogicalName
.LatestVersionNumber MinSize: '1' MaxSize: '4' CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M
WaitCondition
下列範例示範如何將建立政策新增至 Amazon 以外的 CloudFormation 資源的等待條件EC2。
若要發出WaitCondition
資源訊號,請使用 SignalResource API。 這是API設計用來使用您使用 設定WaitCondition
的資源CreationPolicy
。
JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5