You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何停止CloudFormation中当前正在运行的所有堆栈操作?

如何中断CloudFormation中正在运行的堆栈操作?

懂的都懂!当你在CloudFormation里执行了堆栈配置或更新,结果半路出错,看着它慢悠悠回滚或者卡着失败,那种抓心挠肝的懊恼真的太真实了——有时候一等就是几小时甚至几天,翻AWS文档还像走迷宫一样找不到有用的信息。我之前踩过好多次这个坑,折腾了好几天才摸清楚可行的办法,现在把这些经验整理出来:

首先得明确:AWS CloudFormation本身没有直接的"停止"按钮,但有几种靠谱的方法来中断正在进行的操作,分场景来用:

1. 针对回滚/删除中的堆栈:控制台强制删除(保留资源)

如果你的堆栈处于ROLLBACK_IN_PROGRESS、DELETE_IN_PROGRESS或者UPDATE_ROLLBACK_IN_PROGRESS状态:

  • 打开CloudFormation控制台,找到目标堆栈
  • 右键点击堆栈,选择**「Delete Stack」,一定要勾选「Retain resources」**选项
  • 这个操作会立刻终止当前的回滚/删除流程,同时保留已经创建好的资源,不会把它们删掉(这一点超级重要,别漏勾)

2. 针对更新中的堆栈:用CLI取消更新

如果堆栈正处于UPDATE_IN_PROGRESS状态,控制台没有直接的取消按钮,但可以用AWS CLI命令来中断:

aws cloudformation cancel-update-stack --stack-name 你的堆栈名称

执行这个命令后,堆栈会进入UPDATE_ROLLBACK_IN_PROGRESS状态,这时候你再用上面方法1的「删除+保留资源」操作,就能终止回滚流程了。

如果是想中断删除操作,CLI也可以指定保留资源:

aws cloudformation delete-stack --stack-name 你的堆栈名称 --retain-resources "资源逻辑ID1" "资源逻辑ID2"

把里面的资源逻辑ID换成你想保留的资源ID就行,多个资源用空格分隔。

3. 极端情况:手动终止底层资源(谨慎使用)

如果上面两种方法都不管用(比如堆栈彻底卡住,控制台和CLI都没反应),可以尝试手动删除CloudFormation正在操作的底层资源(比如EC2实例、RDS数据库等),但这种方法风险极高,很容易导致资源残留、数据丢失,只建议作为最后手段。

几个关键提醒

  • CREATE_IN_PROGRESS状态的堆栈:目前AWS没有官方方法直接停止,只能等它完成或者失败,所以最好提前在模板里设置TimeoutInMinutes参数,给创建操作设置合理的超时时间,避免卡太久。
  • 保留资源选项:一定要记得勾选,不然CloudFormation会把所有相关资源都删掉,哭都来不及。
  • 操作后检查状态:执行完中断操作后,一定要确认堆栈最终进入ROLLBACK_COMPLETE或者DELETE_COMPLETE状态,避免后续出现异常。

内容的提问来源于stack exchange,提问作者ggwzrd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:27:01