AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS CloudFormation 配置属性参考

当您构建 AWS CodePipeline 管道时,可向此管道添加 Deploy 操作并将 AWS CloudFormation 作为该操作的提供者。随后,您必须指定管道调用的 AWS CloudFormation 操作以及该操作的设置。本主题介绍 AWS CloudFormation 配置属性。要指定属性,您可以使用 AWS CodePipeline 控制台,也可以创建要用于 AWS CLI、AWS CodePipeline API 或 AWS CloudFormation 模板的 JSON 对象

配置属性 (控制台)

AWS CodePipeline 控制台显示配置属性并根据您选择的 Action mode 指定所需的属性。

注意

当您创建新管道时,可以仅指定 Create or update a stackCreate or replace a change set 操作模式。此外,Advanced 部分的属性仅在您编辑现有管道时可用。

Action mode

在处理关联的阶段时 AWS CodePipeline 调用 AWS CloudFormation 操作。选择下列操作模式之一:

  • Create or replace a change set 根据您提交的堆栈名称和模板创建更改集 (如果更改集不存在)。如果更改集存在,AWS CloudFormation 将删除它,然后创建一个新的更改集。

  • Create or update a stack 创建堆栈 (如果指定的堆栈不存在)。如果堆栈存在,AWS CloudFormation 将更新堆栈。使用此操作更新现有堆栈。AWS CodePipeline 不会替换堆栈。

  • Delete a stack 删除堆栈。如果您指定的堆栈不存在,操作将成功完成,而不会删除堆栈。

  • Execute a change set 执行更改集。

  • Replace a failed stack 创建堆栈 (如果指定的堆栈不存在)。如果堆栈存在且处于故障状态 (报告为 ROLLBACK_COMPLETEROLLBACK_FAILEDCREATE_FAILEDDELETE_FAILEDUPDATE_ROLLBACK_FAILED),AWS CloudFormation 将删除堆栈,然后创建新的堆栈。如果堆栈未处于故障状态,AWS CloudFormation 将更新堆栈。使用自操作可自动替换出现故障的堆栈,而无需对其进行恢复或故障排除。您通常将选择此模式以进行测试。

堆栈名称

现有堆栈的名称或要创建的堆栈的名称。

Change set name

现有更改集的名称或要为指定堆栈创建的新更改集的名称。

模板

AWS CloudFormation 模板文件的位置,它遵循格式 ArtifactName::TemplateFileName

Template configuration

模板配置文件的位置,它遵循格式 ArtifactName::TemplateConfigurationFileName。模板配置文件可包含模板参数值和堆栈策略。如果您将敏感信息 (例如密码) 包括在此文件中,请限制对此文件的访问。有关更多信息,请参阅 AWS CloudFormation 项目

功能

对于包含特定资源的堆栈,明确确认 AWS CloudFormation 可能创建或更新这些资源。例如,如果您的堆栈模板包含 AWS Identity and Access Management (IAM) 资源,则必须指定 CAPABILITY_IAM。有关更多信息,请参阅 确认 AWS CloudFormation 模板中的 IAM 资源

如果您的堆栈模板包含 IAM 资源,则必须指定此属性。

角色名称

AWS CloudFormation 在操作指定堆栈中的资源时代入的 IAM 服务角色的名称。

Output file name

Advanced 部分中,您可以指定 AWS CodePipeline 在执行指定操作后添加到输出项目的输出文件名称,例如 CreateStackOutput.json

如果您不指定名称,则 AWS CodePipeline 不会生成输出项目。

Parameter overrides

Advanced 部分中,您可以指定覆盖模板配置文件中的模板参数值的 JSON 对象。所有参数名称必须位于堆栈模板中。

注意

ParameterOverrides 属性中可存储的 JSON 对象的大小上限是 1 KB。

建议您使用模板配置文件来指定大多数参数值。仅使用参数覆盖指定动态参数值 (在您运行管道之前未知的值)。

以下示例通过使用参数覆盖函数来定义 ParameterName 参数的值。该函数从 AWS CodePipeline 输入项目检索值。有关参数覆盖函数的更多信息,请参阅将参数覆盖函数用于 AWS CodePipeline 管道

{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }

配置属性 (JSON 对象)

当您指定 CloudFormation 作为阶段操作的提供者时,请在 Configuration 属性中定义以下属性。将 JSON 对象用于 AWS CLI、AWS CodePipeline API 或 AWS CloudFormation 模板。有关示例,请参阅演练:为测试和生产堆栈构建管道

ActionMode

在处理关联的阶段时 AWS CodePipeline 调用 AWS CloudFormation 操作。仅指定下列操作模式之一:

  • CHANGE_SET_EXECUTE 执行更改集。

  • CHANGE_SET_REPLACE 根据您提交的堆栈名称和模板创建更改集 (如果更改集不存在)。如果更改集存在,AWS CloudFormation 将删除它,然后创建一个新的更改集。

  • CREATE_UPDATE 创建堆栈 (如果指定的堆栈不存在)。如果堆栈存在,AWS CloudFormation 将更新堆栈。使用此操作更新现有堆栈。AWS CodePipeline 不会替换堆栈。

  • DELETE_ONLY 删除堆栈。如果您指定的堆栈不存在,操作将成功完成,而不会删除堆栈。

  • REPLACE_ON_FAILURE 创建堆栈 (如果指定的堆栈不存在)。如果堆栈存在且处于故障状态 (报告为 ROLLBACK_COMPLETEROLLBACK_FAILEDCREATE_FAILEDDELETE_FAILEDUPDATE_ROLLBACK_FAILED),AWS CloudFormation 将删除堆栈,然后创建新的堆栈。如果堆栈未处于故障状态,AWS CloudFormation 将更新堆栈。使用自操作可自动替换出现故障的堆栈,而无需对其进行恢复或故障排除。您通常将选择此模式以进行测试。

此属性是必需属性。

Capabilities

对于包含特定资源的堆栈,明确确认 AWS CloudFormation 可能创建或更新这些资源。例如,如果您的堆栈模板包含 AWS Identity and Access Management (IAM) 资源,则必须指定 CAPABILITY_IAM。有关更多信息,请参阅 确认 AWS CloudFormation 模板中的 IAM 资源

此属性是条件属性。如果您的堆栈模板包含 IAM 资源,则必须指定此属性。

ChangeSetName

现有更改集的名称或要为指定堆栈创建的新更改集的名称。

以下操作模式需要此属性:CHANGE_SET_REPLACECHANGE_SET_EXECUTE。对于所有其他操作模式,将忽略此属性。

OutputFileName

输出文件的名称,例如 CreateStackOutput.json。AWS CodePipeline 在执行指定操作后将文件添加到输出项目

此属性是可选属性。如果您不指定名称,则 AWS CodePipeline 不会生成输出项目。

ParameterOverrides

指定模板参数的值的 JSON 对象。如果您指定的参数已在模板配置文件中指定,则这些值将覆盖这些参数。所有参数名称必须位于堆栈模板中。

注意

ParameterOverrides 属性中可存储的 JSON 对象的大小上限是 1 KB。

建议您使用模板配置文件来指定大多数参数值。仅使用参数覆盖指定动态参数值 (在您运行管道之前未知的值)。

以下示例通过使用参数覆盖函数来定义 ParameterName 参数的值。该函数从 AWS CodePipeline 输入项目检索值。有关参数覆盖函数的更多信息,请参阅将参数覆盖函数用于 AWS CodePipeline 管道

{ "ParameterName" : { "Fn::GetParam" : ["ArtifactName", "config-file-name.json", "ParamName"]} }

此属性是可选属性。

RoleArn

AWS CloudFormation 在操作堆栈中的资源时代入的 IAM 服务角色的 Amazon 资源名称 (ARN)。

以下操作模式需要此属性:CREATE_UPDATEREPLACE_ON_FAILUREDELETE_ONLYCHANGE_SET_REPLACE。注意:在执行更改集时,RoleArn 不适用。如果您不使用 CodePipeline 创建更改集,则必须确保更改集或堆栈具有关联的角色。

StackName

现有堆栈的名称或要创建的堆栈的名称。

所有操作模式都需要此属性。

TemplateConfiguration

模板配置文件的位置,它遵循格式 ArtifactName::TemplateConfigurationFileName。模板配置文件可包含模板参数值和堆栈策略。请注意,如果您将敏感信息 (例如密码) 包括在此文件中,请限制对此文件的访问。有关更多信息,请参阅 AWS CloudFormation 项目

此属性是可选属性。

TemplatePath

AWS CloudFormation 模板文件的位置,它遵循格式 ArtifactName::TemplateFileName

以下操作模式需要此属性:CREATE_UPDATEREPLACE_ON_FAILURECHANGE_SET_REPLACE。对于所有其他操作模式,将忽略此属性。