CreationPolicy 屬性 - AWS CloudFormation

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

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。您可以指定從 0100. 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 庫中 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

下列範例示範如何將建立政策新增至 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