

這是新的 *CloudFormation 範本參考指南*。請更新您的書籤和連結。如需 CloudFormation 入門的說明，請參閱 [AWS CloudFormation 使用者指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)。

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

# `CreationPolicy` 屬性
<a name="aws-attribute-creationpolicy"></a>

將 `CreationPolicy` 屬性與資源建立關聯，以防止其狀態達到建立完成，直到 CloudFormation 收到指定數量的成功訊號或超過逾時期間為止。若要傳送訊號至資源，可以使用 [cfn-signal](cfn-signal.md) 協助程式指令碼或 [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SignalResource.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SignalResource.html) API。CloudFormation 會發佈有效的訊號至堆疊事件，讓您可以追蹤傳送的訊號數目。

建立政策只有在 CloudFormation 建立關聯資源時才會呼叫。目前，支援建立政策的 CloudFormation 資源只有：
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-appstream-fleet.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-appstream-fleet.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-autoscaling-autoscalinggroup.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-instance.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudformation-waitcondition.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-cloudformation-waitcondition.html)

當您希望在繼續建立堆疊前等待資源組態動作時，請使用 `CreationPolicy` 屬性。例如，若您在 EC2 執行個體上安裝和設定軟體應用程式，您可能會希望在繼續前執行那些應用程式。在這種案例下，您可以新增 `CreationPolicy` 屬性至執行個體，然後在安裝和設定應用程式之後傳送成功訊號至執行個體。如需詳細範例，請參閱《*AWS CloudFormation 使用者指南*》中的[使用 CloudFormation 在 Amazon EC2 上部署應用程式](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/deploying.applications.html)。

## WorkSpaces 應用程式建立政策
<a name="aws-attribute-creation-policy-app-stream-fleet"></a>

建立政策的 Amazon AppStream 組態。

### 語法
<a name="aws-attribute-creation-policy-app-stream-fleet-syntax"></a>

#### JSON
<a name="aws-attribute-creation-policy-app-stream-fleet-syntax-json"></a>

```
{
    "CreationPolicy": {
        "StartFleet": "Boolean"
    }
}
```

#### YAML
<a name="aws-attribute-creation-policy-app-stream-fleet-syntax-yaml"></a>

```
CreationPolicy:
  StartFleet: Boolean
```

`StartFleet`  <a name="cfn-attributes-updatepolicy-replacingupdate-StartFleet"></a>
啟動指定機群。  
*必要*：否

## Amazon EC2 Auto Scaling 建立屬性
<a name="w2aac19b7c13"></a>

建立政策的 Amazon EC2 Auto Scaling 組態。

### 語法
<a name="aws-attribute-creation-policy-app-auto-scaling-syntax"></a>

#### JSON
<a name="aws-attribute-creation-policy-app-auto-scaling-syntax.json"></a>

```
"CreationPolicy" : {
  "AutoScalingCreationPolicy" : {
    "MinSuccessfulInstancesPercent" : Integer
  },
  "ResourceSignal" : {    
    "Count" : Integer,
    "Timeout" : String
  }
}
```

#### YAML
<a name="aws-attribute-creation-policy-app-auto-scaling-syntax.yaml"></a>

```
CreationPolicy:
  AutoScalingCreationPolicy:
    MinSuccessfulInstancesPercent: Integer
  ResourceSignal:    
    Count: Integer
    Timeout: String
```

### Amazon EC2 Auto Scaling 建立屬性
<a name="cfn-attributes-creationpolicy-properties"></a>

建立政策的 Amazon EC2 Auto Scaling 組態。

`AutoScalingCreationPolicy`  <a name="cfn-attributes-creationpolicy-autoscalingcreationpolicy"></a>
對於新的 Amazon EC2 Auto Scaling 群組，請指定在將群組狀態設定為 `CREATE_COMPLETE` 之前必須傳送成功訊號的執行個體數目。    
`MinSuccessfulInstancesPercent`  <a name="cfn-attributes-creationpolicy-autoscalingcreationpolicy-minsuccessfulinstancespercent"></a>
指定 Amazon EC2 Auto Scaling 群組中，在將群組狀態設定為 `CREATE_COMPLETE` 之前必須傳送成功訊號的執行個體數目。您可指定介從 `0` 到 `100` 之間的值。CloudFormation 會四捨五入至最接近的 10%。例如，如果建立 5 個執行個體，最低成功百分比為 `50`，則必須有 3 個執行個體傳送成功訊號。如果執行個體未在 `Timeout` 屬性指定的時間內傳送訊號，CloudFormation 將假設執行個體未建立。  
*預設*：`100`  
*類型*：整數  
*必要*：否

`ResourceSignal`  <a name="cfn-attributes-creationpolicy-resourcesignal"></a>
當 CloudFormation 建立關聯資源時，設定必要的成功訊號數及 CloudFormation 等待那些訊號的時間長度。    
`Count`  <a name="cfn-attributes-creationpolicy-resourcesignal-count"></a>
CloudFormation 在將資源狀態設為 `CREATE_COMPLETE` 時必須接收到的成功訊號數。若資源接收到失敗訊號，或是無法在逾時期間過期前接收到指定數目的訊號，則資源建立會失敗，CloudFormation 會復原堆疊。  
*預設*：`1`  
*類型*：整數  
*必要*：否  
`Timeout`  <a name="cfn-attributes-creationpolicy-resourcesignal-timeout"></a>
CloudFormation 等待 `Count` 屬性中指定訊號數的時間長度。逾時期間會在 CloudFormation 穩定資源後開始，並且逾時過期不會早於您指定的時間，但可能會在該時間稍後發生。您可以指定的時間上限是 12 小時。  
值的格式必須為 [ISO8601 持續時間格式](https://en.wikipedia.org/wiki/ISO_8601#Durations)，其形式為：`PT#H#M#S`，其中每個 *\$1* 分別為小時數、分鐘數及秒數。如需取得最佳結果，請指定可讓您的執行個體擁有充裕時間啟動及執行的時間期間。較短的逾時可能會導致復原。  
*預設*：`PT5M` (5 分鐘)  
*類型：*字串  
*必要*：否

## 範例
<a name="aws-attribute-creation-policy-examples"></a>

### Auto Scaling 群組
<a name="aws-attribute-creation-policy-as-group"></a>

以下範例說明如何將建立政策新增至 Amazon EC2 Auto Scaling 群組。建立政策需要三個成功訊號，並會在 15 分鐘之後逾時。當執行個體建立流程成功完成後，使用 [cfn-signal](cfn-signal.md) 協助程式指令碼發出訊號。

若要讓執行個體在 Elastic Load Balancing 運作狀態檢查傳送成功訊號前等待，請使用 [cfn-init](cfn-init.md) 協助程式指令碼新增運作狀態檢查驗證。如需範例，請參閱 [GitHub 儲存庫](https://github.com/aws-cloudformation/aws-cloudformation-templates/tree/main/AutoScaling)中 Amazon EC2 Auto Scaling 滾動式更新範例範本中的 `verify_instance_health` 命令。

#### JSON
<a name="aws-attribute-creationpolicy-example-1.json"></a>

```
"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
<a name="aws-attribute-creationpolicy-example-1.yaml"></a>

```
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
<a name="w2aac19b7c15b5"></a>

以下範例說明如何將建立政策新增至 Amazon EC2 之外的 CloudFormation 資源的等待條件。

若要對 `WaitCondition` 資源發出訊號，請使用 [https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SignalResource.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_SignalResource.html) API。此 API 旨在處理您使用 `CreationPolicy` 設定的 `WaitCondition` 資源。

#### JSON
<a name="aws-attribute-creationpolicy-example-2.json"></a>

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

#### YAML
<a name="aws-attribute-creationpolicy-example-2.yaml"></a>

```
WaitCondition:
  Type: AWS::CloudFormation::WaitCondition
  CreationPolicy:
    ResourceSignal:
      Timeout: PT15M
      Count: 5
```