发布于: Jun 20, 2023

AWS CloudFormation 为 CreateChangeSet API 推出了一个新参数 OnStackFailure,该参数允许客户控制 ChangeSet 的回滚行为。客户使用 ChangeSets 来预览堆栈操作对活动资源的影响。客户可以通过 ExecuteChangeSet 操作来部署 ChangeSets。通过此次发布,客户可以修改 CloudFormation 在 ChangeSet 执行失败时将采取的操作。这可让客户减少重试 ChangeSet 执行期间的手动干预。

客户可以将 OnStackFailure 设置为 ROLLBACK、DELETE 或 DO_NOTHING。ROLLBACK 是 OnStackFailure 的默认选项。当客户将 OnStackFailure 设置为 ROLLBACK 时,如果 ChangeSet 执行失败,CloudFormation 会将堆栈恢复到其最后的稳定状态。这与 ChangeSets 的当前行为相匹配,这样客户可以在生产环境的堆栈更新期间防止服务中断。对于创建新堆栈的 ChangeSets,客户只能将 OnStackFailure 设置为 DELETE。当客户将 OnStackFailure 设置为 DELETE 时,如果 ChangeSet 执行失败,则 CloudFormation 会删除新堆栈。这样就无需手动清理堆栈,并允许客户使用 CI/CD 操作重试堆栈创建。这可以加快测试环境中的开发速度并防止生产环境中出现人为错误。当客户将 OnStackFailure 设置为 DO_NOTHING 时,如果 ChangeSet 执行失败,则 CloudFormation 会保留堆栈的状态。这可让您更轻松地调查测试环境中的预置故障,例如违反 AWS 账户限制。

OnStackFailure 参数在提供 CloudFormation 的 AWS 区域推出。请参阅 AWS 区域表,查看提供 CloudFormation 的 AWS 区域。

要了解有关 OnStackFailure 的更多信息,请参阅 CreateChangeSet API 文档