aws:createStack – 创建 Amazon CloudFormation 堆栈。 - Amazon Systems Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

aws:createStack – 创建 Amazon CloudFormation 堆栈。

从模板创建 Amazon CloudFormation 堆栈。

有关创建 CloudFormation 堆栈的补充信息,请参阅 Amazon CloudFormationAPI 参考中的 CreateStack

输入

YAML
name: makeStack action: aws:createStack maxAttempts: 1 onFailure: Abort inputs: Capabilities: - CAPABILITY_IAM StackName: myStack TemplateURL: http://s3.amazonaws.com/doc-example-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/doc-example-bucket/myStackTemplate", "TimeoutInMinutes": 5, "Parameters": [ { "ParameterKey": "LambdaRoleArn", "ParameterValue": "{{LambdaAssumeRole}}" }, { "ParameterKey": "createdResource", "ParameterValue": "createdResource-{{automation:EXECUTION_ID}}" } } }
功能

必须在 CloudFormatio 可以创建某些堆栈之前指定的值列表。一些堆栈模板中包含的资源会影响您的 Amazon Web Services 账户中的权限。例如,创建新 Amazon Identity and Access Management (IAM) 用户会影响您账户中的权限。对于这些堆栈,您必须通过指定此参数来明确确认它们的功能。

有效值包括 CAPABILITY_IAMCAPABILITY_NAMED_IAMCAPABILITY_AUTO_EXPAND

CAPABILITY_IAM 和 CAPABILITY_NAMED_IAM

如果包含 IAM 资源,您可以指定任意一个功能。如果包含具有自定义名称的 IAM 资源,则必须指定 CAPABILITY_NAMED_IAM。如果您不指定此参数,则此操作会返回 InsufficientCapabilities 错误。以下资源要求您指定 CAPABILITY_IAMCAPABILITY_NAMED_IAM

如果您的堆栈模板包含这些资源,我们建议您查看与之关联的所有权限并在必要时编辑其权限。

有关更多信息,请参阅确认 Amazon CloudFormation 模板中的 IAM 资源

CAPABILITY_AUTO_EXPAND

某些模板包含宏。宏对模板执行自定义处理,包括查找并替换等简单操作,以及整个模板的大幅转换。因此,用户通常会从已处理的模板创建更改集,这样他们便能在实际创建堆栈之前查看宏导致的更改。如果堆栈模板包含一个或多个宏,并且您选择直接从已处理的模板创建堆栈,而不首先查看更改集中生成的更改,则必须确认此功能。

有关更多信息,请参阅 Amazon CloudFormation用户指南中的使用 Amazon CloudFormation 宏对模板执行自定义处理

类型:字符串的数组

有效值:CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND

必需:否

ClientRequestToken

该 CreateStack 请求的唯一标识符。如果将此步骤中的 maxAttempts 设置为大于 1 的值,请指定此令牌。通过指定此令牌,CloudFormation 知道您未在尝试使用相同的名称创建新堆栈。

类型:字符串

必需:否

长度限制:最小长度为 1。长度上限为 128。

模式:[a-zA-Z0-9][-a-zA-Z0-9]*

DisableRollback

如果堆栈创建失败,请设置为 true 以关闭堆栈回滚。

Conditional:您可以指定 DisableRollback 参数或 OnFailure 参数,但不能同时指定。

默认值:false

类型:布尔值

必需:否

NotificationARNs

用于发布堆栈相关事件的 Amazon Simple Notification Service (Amazon SNS) 主题 ARN。您可以使用 Amazon SNS 控制台 https://console.aws.amazon.com/sns/v3/home 查找 SNS 主题 ARN。

类型:字符串的数组

数组成员:最多 5 项。

必需:否

OnFailure

如果堆栈创建失败,确定要执行的操作。您必须指定 DO_NOTHINGROLLBACKDELETE

Conditional:您可以指定 OnFailure 参数或 DisableRollback 参数,但不能同时指定。

默认值:ROLLBACK

类型:字符串

有效值: DO_NOTHING | ROLLBACK | DELETE

必需:否

参数

指定堆栈输入参数的 Parameter 结构列表。有关更多信息,请参阅参数数据类型。

类型:参数对象数组

必需:否

ResourceTypes

您有权用于此创建堆栈操作的模板资源类型。例如,AWS::EC2::InstanceAWS::EC2::*Custom::MyCustomInstance。使用以下语法描述模板资源类型。

  • 对于所有 Amazon 资源:

    AWS::*
  • 对于所有自定义资源:

    Custom::*
  • 对于指定自定义资源:

    Custom::logical_ID
  • 对于特定 Amazon 服务的所有资源:

    AWS::service_name::*
  • 对于特定的 Amazon 资源:

    AWS::service_name::resource_logical_ID

如果资源类型列表不包括您创建的资源,那么堆栈创建将会失败。默认情况下,CloudFormation 授予对所有资源类型的权限。IAM 将此参数用于 IAM 策略中特定于云的条件密钥。有关更多信息,请参阅使用 Amazon Identity and Access Management 控制访问

类型:字符串的数组

长度限制:最小长度为 1。长度上限为 256。

必需:否

RoleARN

CloudFormation 用于创建堆栈的 IAM 角色的 Amazon Resource Name (ARN)。CloudFormation 使用角色的凭证代表您进行调用。CloudFormation 始终将此角色用于堆栈上的所有未来操作。只要用户有权对堆栈进行操作,CloudFormation 会使用此角色,即使用户无权传递它。确保该角色授予最少的权限。

如果您不指定值,则 CloudFormation 会使用之前与堆栈关联的角色。如果角色不可用,则 CloudFormation 会使用您的用户凭证生成的一个临时会话。

类型:字符串

长度限制:最小长度为 20。长度上限为 2048。

必需:否

StackName

与堆栈关联的名称。名称在您创建堆栈的区域中必须是唯一的。

注意

堆栈名称只能包含字母数字字符(区分大小写)和连字符。该名称必须以字母字符开头,且不得超过 128 个字符。

类型:字符串

必需:是

StackPolicyBody

包含堆栈策略正文的结构。有关更多信息,请参阅防止更新堆栈资源

Conditional:您可以指定 StackPolicyBody 参数或 StackPolicyURL 参数,但不能同时指定。

类型:字符串

长度限制:最小长度为 1。长度上限为 16384。

必需:否

StackPolicyURL

包含堆栈策略的文件的位置。URL 指向的策略必须位于与堆栈处于同一区域的 S3 存储桶中。堆栈策略允许的最大文件大小为 16 KB。

Conditional:您可以指定 StackPolicyBody 参数或 StackPolicyURL 参数,但不能同时指定。

类型:字符串

长度限制:最小长度为 1。长度上限为 1350。

必需:否

标签

与此堆栈关联的键值对。CloudFormation 还可以将这些标签传播到堆栈中创建的资源。您可以指定最多 10 个标签。

类型:标签对象数组

必需:否

TemplateBody

包含最小长度为 1 字节、最大长度为 51200 字节的模板正文的结构。有关更多信息,请参阅模板剖析

Conditional:您可以指定 TemplateBody 参数或 TemplateURL 参数,但不能同时指定。

类型:字符串

长度限制:最小长度为 1。

必需:否

TemplateURL

包含模板正文的文件的位置。URL 必须指向一个位于 S3 存储桶中的模板。模板允许的最大大小为 460800 字节。有关更多信息,请参阅模板剖析

Conditional:您可以指定 TemplateBody 参数或 TemplateURL 参数,但不能同时指定。

类型:字符串

长度限制:最小长度为 1。长度上限为 1024。

必需:否

TimeoutInMinutes

堆栈状态变为 CREATE_FAILED 前允许经过的时间。如果未设置 DisableRollback 或将其设置为 false,堆栈将被回滚。

类型:整数

有效范围:最小值为 1。

必需:否

输出

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

安全注意事项

您必须将以下策略分配给 IAM 自动化担任角色,才可以使用 aws:createStack 操作。有关担任角色的更多信息,请参阅任务 1:为自动化创建服务角色

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