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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

aws:createStack – 创建 AWS CloudFormation 堆栈

从模板创建新 AWS CloudFormation 堆栈。

有关创建 AWS CloudFormation 堆栈的补充信息,请参阅 https://docs.amazonaws.cn/AWSCloudFormation/latest/APIReference/API_CreateStack.html 中的 CreateStackAWS CloudFormation API Reference。

输入

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}}" } } }
Capabilities

必须在 AWS CloudFormation 可以创建某些堆栈之前指定的值列表。一些堆栈模板中包含的资源会影响您的 AWS 账户中的权限。例如,创建新 AWS 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.

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

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

CAPABILITY_AUTO_EXPAND

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

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

类型:字符串的数组

有效值:CAPABILITY_IAM | CAPABILITY_NAMED_IAM | CAPABILITY_AUTO_EXPAND

必需:否

ClientRequestToken

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

类型:字符串

必需:否

长度约束:最小长度为 1。最大长度为 128。

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

DisableRollback

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

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

默认值:false

类型:布尔值

必需:否

NotificationARNs

用于发布堆栈相关事件的 Amazon SNS 主题 ARN。您可以使用 Amazon SNS 控制台 (https://console.amazonaws.cn/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。使用以下语法描述模板资源类型。

  • 对于所有 AWS 资源:

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

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

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

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

    AWS::service_name::resource_logical_ID

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

类型:字符串的数组

长度约束:最小长度为 1。长度上限为 256。

必需:否

RoleARN

IAM 创建堆栈所担任的 AWS CloudFormation 角色的 Amazon 资源名称 (ARN)。AWS CloudFormation 使用该角色的凭证以您的名义进行调用。AWS CloudFormation 针对堆栈的所有未来操作始终使用此角色。只要用户有权对堆栈进行操作,AWS CloudFormation 会使用此角色,即使用户无权传递它。确保该角色授予最少的权限。

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

类型:字符串

长度约束:最小长度为 20。长度上限为 2048。

必需:否

StackName

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

注意

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

类型:字符串

必需:是

StackPolicyBody

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

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

类型:字符串

长度约束:最小长度为 1。长度上限为 16384。

必需:否

StackPolicyURL

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

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

类型:字符串

长度约束:最小长度为 1。长度上限为 1350。

必需:否

标签

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

类型:标签对象数组

必需:否

TemplateBody

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

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

类型:字符串

长度约束:最小长度为 1。

必需:否

TemplateURL

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

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

类型:字符串

长度约束:最小长度为 1。长度上限为 1024。

必需:否

TimeoutInMinutes

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

类型:整数

有效范围:最小值为 1。

必需:否

Outputs

堆栈 ID

堆栈的唯一标识符。

类型:字符串

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.

安全注意事项

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

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