AWS CloudFormation
用户指南 (API 版本 2010-05-15)

监控和回滚堆栈操作

利用回滚触发器,您可让 AWS CloudFormation 在堆栈创建和更新期间监控应用程序的状态,并可在应用程序超出您指定的任何警报的阈值时回滚操作。对于您创建的每个回滚触发器,您需要指定 AWS CloudFormation 应监控的 Cloudwatch 警报。AWS CloudFormation 会在堆栈创建或更新操作期间以及所有资源部署完毕之后的指定时间段内,一直监控指定的警报。在堆栈操作或监控期间,如果有任何警报进入“警报”状态,AWS CloudFormation 就会回滚整个堆栈操作。

您可以将监控时间设置为 0 (默认值) 到 180 分钟之间。在堆栈创建或更新操作部署了所有必需的资源之后,AWS CloudFormation 仍会在这段时间内监控所有的回滚触发器。在堆栈操作或此监控期间,如果有任何警报进入“警报”状态,AWS CloudFormation 就会回滚整个堆栈操作。对于更新操作,如果监控期间结束而没有任何警报进入“警报”状态,CloudFormation 将继续照常处置旧资源。如果您设置了监控时间,但没有指定任何回滚触发器,AWS CloudFormation 仍然会等待指定的时长,然后清理掉更新操作的旧资源。您可以使用此监控期间来执行任何所需的手动堆栈验证,然后根据需要手动取消堆栈创建或更新操作。如果您将监控时间设置为 0 分钟,AWS CloudFormation 仍会在堆栈创建和更新操作期间监控回滚触发器,并在有警报进入“警报”状态时回滚操作。对于没有发生警报的更新操作,系统会在该操作完成时立即开始处置旧资源。

默认情况下,CloudFormation 仅在有警报进入“警报”状态 (不是“数据不足”状态) 时才回滚堆栈操作。如果还要让 AWS CloudFormation 在有警报进入“数据不足”状态时回滚堆栈操作,请编辑 CloudWatch 警报以便将缺少数据视为 breaching。有关更多信息,请参阅Amazon CloudWatch 用户指南中的配置 CloudWatch 警报处理缺少数据的方式

在更新操作期间回滚堆栈时,AWS CloudFormation 不会监控回滚触发器。

您可以添加最多 5 个回滚触发器。要添加回滚触发器,您需要指定 CloudWatch 警报的 ARN (Amazon 资源名称)。目前,只有 AWS::CloudWatch::Alarm 类型可以用作回滚触发器。

如果给定的 Cloudwatch 警报缺失,整个堆栈操作都会失败并且回滚。

请注意,访问 Amazon CloudWatch 需要凭证。这些凭证必须有权访问 AWS 资源,例如检索您的云资源的 CloudWatch 指标数据。有关更多信息,请参阅Amazon CloudWatch 用户指南中的 Amazon CloudWatch 的身份验证和访问控制

在堆栈创建或更新期间添加回滚触发器

  1. 创建更新堆栈时,在 Configure stack options (配置堆栈选项) 页面中,在高级选项下转到 Rollback configuration (回滚配置)

  2. 指定一个介于 0 到 180 分钟之间的监控时间。默认值为 0。

  3. 输入您要用作回滚触发器的 Cloudwatch 警报的 ARN,然后单击 Add CloudWatch alarm ARN (添加 CloudWatch 警报 ARN)

    您可以添加最多 5 个回滚触发器。

将回滚触发器添加到更改集

  1. 创建或更新更改集期间,在 Configure stack options (配置堆栈选项) 页面的高级选项下,转到 Rollback configuration (回滚配置)

  2. 指定一个介于 0 到 180 分钟之间的监控时间。默认值为 0。

  3. 输入您要用作回滚触发器的 Cloudwatch 警报的 ARN,然后单击 Add CloudWatch alarm ARN (添加 CloudWatch 警报 ARN)

    您可以添加最多 5 个回滚触发器。

查看堆栈的回滚触发器

  • 堆栈页面上,从左侧列表中选择要查看的堆栈。在 Stack info (堆栈信息) 选项卡上,在高级选项下展开回滚配置部分。