未成功创建堆栈时continue-update-rollback命令行为及状态问询
CloudFormation
continue-update-rollback 未成功创建堆栈场景下的行为分析 场景说明
堆栈状态流转流程:
(0) 初始状态 ----> 堆栈创建 ----> UPDATE_FAILED (1) -----> UPDATE_FAILED (2) ----> 执行ChangeSet (3) ----> UPDATE_FAILED/UPDATE_ROLLBACK_FAILED (4)----> 执行continue-update-rollback ----> (?)
附加配置:
- 堆栈创建时已启用终止保护和DisableRollback
- UPDATE_ROLLBACK_FAILED错误源于CloudFormation外部对资源的手动修改
结论
执行continue-update-rollback命令后,堆栈会回到状态(2)。
原因解释
continue-update-rollback的核心作用是将堆栈恢复到最近一次成功完成更新操作前的稳定状态。由于该堆栈从未成功完成创建,其最近的稳定状态是执行ChangeSet前的UPDATE_FAILED(2)状态。- 针对外部手动修改资源导致的UPDATE_ROLLBACK_FAILED,执行命令时可通过
--resources-to-skip参数跳过无法正常回滚的异常资源,完成回滚后堆栈会回到执行ChangeSet之前的状态(2)。 - 启用的终止保护仅限制堆栈删除操作,DisableRollback则防止堆栈创建失败后自动删除,二者均不影响
continue-update-rollback的回滚逻辑。
内容的提问来源于stack exchange,提问作者Pramod Kulkarni
相关产品推荐
相关产品推荐

