CreationPolicy 屬性 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CreationPolicy 屬性

CreationPolicy屬性與資源相關聯,以防止其狀態達到建立完成,直到 AWS CloudFormation 收到指定數目的成功訊號或超過逾時期間為止。要向資源發出信號,您可以使用 cfn-signal 輔助腳本或. SignalResourceAPI CloudFormation 向堆棧事件發布有效信號,以便跟踪發送的信號數量。

只有在建立關聯的資源時,才會呼叫 CloudFormation 建立原則。目前,支援建立原則的唯一 CloudFormation 資源是:

當您希望在繼續建立堆疊前等待資源組態動作時,請使用 CreationPolicy 屬性。例如,如果您在EC2執行個體上安裝並設定軟體應用程式,您可能希望這些應用程式在繼續之前執行。在這種案例下,您可以新增 CreationPolicy 屬性至執行個體,然後在安裝和設定應用程式之後傳送成功訊號至執行個體。如需詳細範例,請參閱 在 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 四捨五入至最接近的百分之十。例如,如果建立 5 個執行個體,最低成功百分比為 50,則必須有 3 個執行個體傳送成功訊號。如果執行個體未在Timeout屬性指定的時間內傳送訊號,則 CloudFormation 假設未建立執行個體。

預設100

類型:整數

必要:否

ResourceSignal

CloudFormation 建立關聯的資源時,會設定所需成功訊號的數目,以及 CloudFormation 等待這些訊號的時間長度。

Count

成功訊號的數目 CloudFormation 必須接收,才能將資源狀態設定為CREATE_COMPLETE。如果資源在逾時期限到期之前收到失敗訊號或未收到指定數量的訊號,則資源建立會失敗並 CloudFormation 回復堆疊。

預設1

類型:整數

必要:否

Timeout

CloudFormation 等待Count屬性中指定之訊號數目的時間長度。逾時期限會在 CloudFormation 穩定資源之後開始,逾時時間不會早於您指定的時間過期,但可能會在此後不久發生。您可以指定的時間上限是 12 小時。

該值必須是 ISO8601 持續時間格式,格式為:PT#H#M#S,其中每個 # 分別為小時、分鐘和秒數。如需取得最佳結果,請指定可讓您的執行個體擁有充裕時間啟動及執行的時間期間。較短的逾時可能會導致復原。

預設PT5M (5 分鐘)

類型:字串

必要:否

範例

Auto Scaling 群組

下列範例顯示如何將建立政策新增至 Amazon EC2 Auto Scaling 群組。建立政策需要三個成功訊號,並會在 15 分鐘之後逾時。

若要讓執行個體在 Elastic Load Balancing 運作狀態檢查傳送成功訊號前等待,請使用 cfn-init 協助程式指令碼新增運作狀態檢查驗證。如需範例,請參閱我們GitHub 儲存庫中 Amazon EC2 Auto Scaling 滾動更新範例範本中的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: !Ref logicalName Version: !GetAtt logicalName.LatestVersionNumber MinSize: '1' MaxSize: '4' CreationPolicy: ResourceSignal: Count: '3' Timeout: PT15M

WaitCondition

以下範例說明如何將建立政策新增至等待條件。

JSON
"WaitCondition" : { "Type" : "AWS::CloudFormation::WaitCondition", "CreationPolicy" : { "ResourceSignal" : { "Timeout" : "PT15M", "Count" : "5" } } }
YAML
WaitCondition: Type: AWS::CloudFormation::WaitCondition CreationPolicy: ResourceSignal: Timeout: PT15M Count: 5