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

创建更改集

要为正在运行的堆栈创建更改集,请通过提供修改后的模板来提交要进行的更改和/或新输入参数值。AWS CloudFormation 通过将堆栈与您提交的更改进行对比来生成更改集。

要修改模板,例如,添加新资源到您的堆栈,请在创建更改集之前修改当前模板的副本。有关更多信息,请参阅 修改堆栈模板

创建更改集(控制台)

  1. AWS CloudFormation 控制台 的堆栈列表中,选择您要为其创建更改集的运行堆栈。

  2. 选择 Actions,然后选择 Create Change Set

     “Actions”菜单中的“Create Change Set For Current Stack”选项。
  3. 如果您修改了堆栈模板,请指定更新的模板的位置。否则,请选择 Use current template

    • 对于在计算机上本地存储的模板,选择 Upload a template to Amazon S3。选择 Choose File 以导航到文件并选中它,然后单击 Next

    • 对于在 Amazon S3 存储桶中存储的模板,选择 Specify an Amazon S3 URL。输入或粘贴模板的 URL,然后单击 Next (下一步)

      如果您的模板存储在启用了版本控制的存储桶中,则您可以指定模板的具体版本,例如:https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW。有关更多信息,请参阅 Amazon Simple Storage Service 控制台用户指南 中的在启用了版本控制的存储桶中管理对象

  4. Specify Details 页上,键入有关更改集的信息,如果需要,修改您要更改的参数值,然后选择 Next

    Specify Details 部分中,指定更改集的名称。您还可以指定更改集的说明用于标识其用途。

    如果您的模板包含参数,请在 Parameters 部分中更改适用的参数值。如果您重用堆栈的模板,AWS CloudFormation 会使用堆栈中的当前值填充各个参数,但在 NoEcho 属性中声明的参数除外。要为这些参数使用现有值,请选择 Use existing value

  5. Options 页上,可以相应地更新堆栈的服务角色、堆栈标签或堆栈的 Amazon SNS 通知主题,然后选择 Next

  6. 复查此更改集的更改。

    如果模板包括 AWS Identity and Access Management (IAM) 资源,请选择 I acknowledge that this template may create IAM resources 以确认在您执行此更改集时 AWS CloudFormation 可创建 IAM 资源。IAM 资源可以修改您的 AWS 账户中的权限;复查这些资源以确保您仅允许所需的操作。有关更多信息,请参阅 使用 AWS Identity and Access Management 控制访问

  7. 选择 Create change set

    您将重定向到更改集的详细信息页面。在 AWS CloudFormation 生成更改集时,更改集的状态为 CREATE_IN_PROGRESS。在创建了更改集之后,AWS CloudFormation 将状态设置为 CREATE_COMPLETE。在 Changes 部分中,AWS CloudFormation 列出将对您的堆栈进行的所有更改。有关更多信息,请参阅 查看更改集

     更改集的详细信息页面。

    如果 AWS CloudFormation 无法创建更改集(报告 FAILED 状态),请修复 Status 字段中显示的错误,然后重新创建更改集。

创建更改集 (AWS CLI)

  • 运行 aws cloudformation create-change-set 命令。

    您以命令选项的形式提交更改。您可以指定新参数值和/或修改后的模板。例如,以下命令为 SampleStack 堆栈创建名为 SampleChangeSet 的更改集。更改集使用当前堆栈的模板,但 Purpose 参数具有不同值:

    aws cloudformation create-change-set --stack-name arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000 --change-set-name SampleChangeSet --use-previous-template --parameters ParameterKey="InstanceType",UsePreviousValue=true ParameterKey="KeyPairName",UsePreviousValue=true ParameterKey="Purpose",ParameterValue="production"