

• AWS Systems Manager CloudWatch 控制面板在 2026 年 4 月 30 日之后将不再可用。客户可以像现在一样继续使用 Amazon CloudWatch 控制台来查看、创建和管理其 Amazon CloudWatch 控制面板。有关更多信息，请参阅 [Amazon CloudWatch 控制面板文档](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html)。

# `aws:createStack` – 创建 CloudFormation 堆栈。
<a name="automation-action-createstack"></a>

从模板创建 AWS CloudFormation 堆栈。

**注意**  
`aws:createStack` 操作支持自动节流重试。有关更多信息，请参阅 [为节流的操作配置自动重试](automation-throttling-retry.md)。

有关创建 CloudFormation 堆栈的补充信息，请参阅 *AWS CloudFormationAPI 参考*中的 [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)。

**输入**

------
#### [ YAML ]

```
name: makeStack
action: aws:createStack
maxAttempts: 1
onFailure: Abort
inputs:
  Capabilities:
  - CAPABILITY_IAM
  StackName: myStack
  TemplateURL: http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate
  TimeoutInMinutes: 5
  Parameters:
    - ParameterKey: LambdaRoleArn
      ParameterValue: "{{LambdaAssumeRole}}"
    - ParameterKey: createdResource
      ParameterValue: createdResource-{{automation:EXECUTION_ID}}
```

------
#### [ JSON ]

```
{
    "name": "makeStack",
    "action": "aws:createStack",
    "maxAttempts": 1,
    "onFailure": "Abort",
    "inputs": {
        "Capabilities": [
            "CAPABILITY_IAM"
        ],
        "StackName": "myStack",
        "TemplateURL": "http://s3.amazonaws.com/amzn-s3-demo-bucket/myStackTemplate",
        "TimeoutInMinutes": 5,
        "Parameters": [
          {
            "ParameterKey": "LambdaRoleArn",
            "ParameterValue": "{{LambdaAssumeRole}}"
          },
          {
            "ParameterKey": "createdResource",
            "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}"
          }
    }
}
```

------

功能  
必须在 CloudFormatio 可以创建某些堆栈之前指定的值列表。一些堆栈模板中包含的资源会影响您的 AWS 账户中的权限。对于这些堆栈，您必须通过指定此参数来明确确认它们的功能。  
有效值包括 `CAPABILITY_IAM`、`CAPABILITY_NAMED_IAM` 和 `CAPABILITY_AUTO_EXPAND`。  
**CAPABILITY\$1IAM 和 CAPABILITY\$1NAMED\$1IAM**  
如果包含 IAM 资源，您可以指定任意一个功能。如果包含具有自定义名称的 IAM 资源，则必须指定 `CAPABILITY_NAMED_IAM`。如果您不指定此参数，则此操作会返回 `InsufficientCapabilities` 错误。以下资源要求您指定 `CAPABILITY_IAM` 或 `CAPABILITY_NAMED_IAM`。
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html)
+ [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html)
如果您的堆栈模板包含这些资源，我们建议您查看与之关联的所有权限并在必要时编辑其权限。  
有关更多信息，请参阅[确认 CloudFormation 模板中的 IAM 资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html#capabilities)。  
**CAPABILITY\$1AUTO\$1EXPAND**  
某些模板包含宏。宏对模板执行自定义处理，包括查找并替换等简单操作，以及整个模板的大幅转换。因此，用户通常会从已处理的模板创建更改集，这样他们便能在实际创建堆栈之前查看宏导致的更改。如果堆栈模板包含一个或多个宏，并且您选择直接从已处理的模板创建堆栈，而不首先查看更改集中生成的更改，则必须确认此功能。
有关更多信息，请参阅 *AWS CloudFormation用户指南*中的[使用 AWS CloudFormation 宏对模板执行自定义处理](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-macros.html)。  
类型：字符串的数组  
有效值：`CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND`  
必需：否

ClientRequestToken  
该 CreateStack 请求的唯一标识符。如果将此步骤中的 maxAttempts 设置为大于 1 的值，请指定此令牌。通过指定此令牌，CloudFormation 知道您未在尝试使用相同的名称创建新堆栈。  
类型：字符串  
必需：否  
长度限制：最小长度为 1。最大长度为 128。  
模式：[a-zA-Z0-9][-a-zA-Z0-9]\$1

DisableRollback  
如果堆栈创建失败，请设置为 `true` 以关闭堆栈回滚。  
Conditional：您可以指定 `DisableRollback` 参数或 `OnFailure` 参数，但不能同时指定。  
默认值：`false`  
类型：布尔值  
必需：否

NotificationARNs  
用于发布堆栈相关事件的 Amazon Simple Notification Service (Amazon SNS) 主题 ARN。您可以使用 Amazon SNS 控制台 [https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) 查找 SNS 主题 ARN。  
类型：字符串的数组  
数组成员：最多 5 项。  
必需：否

OnFailure  
如果堆栈创建失败，确定要执行的操作。您必须指定 `DO_NOTHING`、`ROLLBACK` 或 `DELETE`。  
Conditional：您可以指定 `OnFailure` 参数或 `DisableRollback` 参数，但不能同时指定。  
默认值：`ROLLBACK`  
类型：字符串  
有效值:` DO_NOTHING | ROLLBACK | DELETE`  
必需：否

参数  
指定堆栈输入参数的 `Parameter` 结构列表。有关更多信息，请参阅[参数](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)数据类型。  
类型：[参数](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Parameter.html)对象数组   
必需：否

ResourceTypes  
您有权用于此创建堆栈操作的模板资源类型。例如，`AWS::EC2::Instance`、`AWS::EC2::*` 或 `Custom::MyCustomInstance`。使用以下语法描述模板资源类型。  
+ 对于所有 AWS 资源：

  ```
  AWS::*
  ```
+ 对于所有自定义资源：

  ```
  Custom::*
  ```
+ 对于指定自定义资源：

  ```
  Custom::logical_ID
  ```
+ 对于特定 AWS 服务的所有资源：

  ```
  AWS::service_name::*
  ```
+ 对于特定的 AWS 资源：

  ```
  AWS::service_name::resource_logical_ID
  ```
如果资源类型列表不包括您创建的资源，那么堆栈创建将会失败。默认情况下，CloudFormation 授予对所有资源类型的权限。IAM 将此参数用于 IAM policy 中特定于云的条件密钥。有关更多信息，请参阅[使用 AWS Identity and Access Management 控制访问](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-template.html)。  
类型：字符串的数组  
长度约束：最小长度为 1。最大长度为 256。  
必需：否

RoleARN  
CloudFormation 用于创建堆栈的 IAM 角色的 Amazon Resource Name (ARN)。CloudFormation 使用角色的凭证代表您进行调用。CloudFormation 始终将此角色用于堆栈上的所有未来操作。只要用户有权对堆栈进行操作，CloudFormation 会使用此角色，即使用户无权传递它。确保该角色授予最少的权限。  
如果您不指定值，则 CloudFormation 会使用之前与堆栈关联的角色。如果角色不可用，则 CloudFormation 会使用您的用户凭证生成的一个临时会话。  
类型：字符串  
长度约束：最小长度为 20。最大长度为 2048。  
必需：否

StackName  
与堆栈关联的名称。名称在您创建堆栈的区域中必须是唯一的。  
堆栈名称只能包含字母数字字符（区分大小写）和连字符。该名称必须以字母字符开头，且不得超过 128 个字符。
类型：字符串  
是否必需：是

StackPolicyBody  
包含堆栈策略正文的结构。有关更多信息，请参阅[防止更新堆栈资源](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/protect-stack-resources.html)。  
Conditional：您可以指定 `StackPolicyBody` 参数或 `StackPolicyURL` 参数，但不能同时指定。  
类型：字符串  
长度限制：最小长度为 1。长度上限为 16384。  
必需：否

StackPolicyURL  
包含堆栈策略的文件的位置。URL 指向的策略必须位于与堆栈处于同一区域的 S3 存储桶中。堆栈策略允许的最大文件大小为 16 KB。  
Conditional：您可以指定 `StackPolicyBody` 参数或 `StackPolicyURL` 参数，但不能同时指定。  
类型：字符串  
长度限制：最小长度为 1。长度上限为 1350。  
必需：否

Tags  
与此堆栈关联的键值对。CloudFormation 还可以将这些标签传播到堆栈中创建的资源。您可以指定最多 10 个标签。  
类型：[标签](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_Tag.html)对象数组   
必需：否

TemplateBody  
包含最小长度为 1 字节、最大长度为 51200 字节的模板正文的结构。有关更多信息，请参阅[模板剖析](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)。  
Conditional：您可以指定 `TemplateBody` 参数或 `TemplateURL` 参数，但不能同时指定。  
类型：字符串  
长度限制：最小长度为 1。  
必需：否

TemplateURL  
包含模板正文的文件的位置。URL 必须指向一个位于 S3 存储桶中的模板。模板允许的最大大小为 460800 字节。有关更多信息，请参阅[模板剖析](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)。  
Conditional：您可以指定 `TemplateBody` 参数或 `TemplateURL` 参数，但不能同时指定。  
类型：字符串  
长度限制：最小长度为 1。最大长度为 1024。  
必需：否

TimeoutInMinutes  
堆栈状态变为 `CREATE_FAILED` 前允许经过的时间。如果未设置 `DisableRollback` 或将其设置为 `false`，堆栈将被回滚。  
类型：整数  
有效范围：最小值为 1。  
必需：否

## 输出
<a name="automation-action-createstack-output"></a>

StackId  
堆栈的唯一标识符。  
类型：字符串

StackStatus  
堆栈的当前状态。  
类型：字符串  
有效值：`CREATE_IN_PROGRESS | CREATE_FAILED | CREATE_COMPLETE | ROLLBACK_IN_PROGRESS | ROLLBACK_FAILED | ROLLBACK_COMPLETE | DELETE_IN_PROGRESS | DELETE_FAILED | DELETE_COMPLETE | UPDATE_IN_PROGRESS | UPDATE_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_COMPLETE | UPDATE_ROLLBACK_IN_PROGRESS | UPDATE_ROLLBACK_FAILED | UPDATE_ROLLBACK_COMPLETE_CLEANUP_IN_PROGRESS | UPDATE_ROLLBACK_COMPLETE | REVIEW_IN_PROGRESS`  
是否必需：是

StackStatusReason  
与堆栈状态相关联的成功或失败消息。  
类型：字符串  
必需：否  
有关更多信息，请参阅 [CreateStack](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_CreateStack.html)。

## 安全注意事项
<a name="automation-action-createstack-security"></a>

您必须将以下策略分配给 IAM 自动化担任角色，才可以使用 `aws:createStack` 操作。有关担任角色的更多信息，请参阅 [任务 1：为自动化创建服务角色](automation-setup-iam.md#create-service-role)。

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "sqs:*",
            "cloudformation:CreateStack",
            "cloudformation:DescribeStacks"
         ],
         "Resource":"*"
      }
   ]
}
```

------