验证错误堆栈: arn aws 云形成堆栈处于 ROLLback_COMPLETE 状态,无法更新

当我使用云形成 aws cloudformation deploy --region $region --stack-name ABC进行部署时

搞错了:

调用 CreateChangeSet 时发生错误(ValidationError) operation: Stack: arn: aws: cloud dform: Stack/service/7e1d8c70-d60f-11e9-9728-0a4501e4ce4c is in ROLLBACK_COMPLETE state and can not be updated.

救救我!

84122 次浏览

当堆栈创建失败时就会发生这种情况。默认情况下,堆栈将保持为 ROLLBACK_COMPLETE状态。这意味着它成功地回滚(删除)了堆栈创建的所有资源。剩下的只有空栈本身。无法更新此堆栈; 必须手动删除它,然后可以尝试再次部署它。


如果在控制台中将“ Rollback on fault”设置为禁用(或者在 CLI 命令中将 --on-failure设置为 DO_NOTHING,如果使用 create-stack) ,则堆栈创建失败将导致 CREATE_FAILED状态。在故障点之前创建的任何资源都不会被回滚。

相反,如果您将更新部署到现有的(已成功创建的)堆栈,更新失败但被成功回滚,它将回到以前的有效状态(状态为 UPDATE_ROLLBACK_COMPLETE) ,允许您重新尝试更新。


正如@SteffenOpel 指出的,现在可以通过在 CLI 中将 --on-failure选项(仅针对 create-stack,而不是 deploy)设置为 DELETE来指定在出现故障时删除堆栈。在编写本文时(13/11/20) ,此选项在控制台中还不可用。

运行以下 AWS CLI 命令到 删除你的栈:

aws cloudformation delete-stack --stack-name <<stack-name>>

删除堆栈可能需要不到一分钟的时间,然后尝试重新部署它。

2个解决方案 1. 必须手动删除 s3中的所有对象 (如果仍然出现错误,Stack:arn:aws:cloudformation:eu-west-3:624140032431:stack/as*****cbucket/f57c54f0-618a-11ec-afd7-06fc90426f3e is in ROLLBACK_COMPLETE state and can not be updated.,转到第二个解决方案) 2. 创建一个新的 bucket 来继续