CloudFormation部署报错:Waiter StackCreateComplete失败,如何排查根因?
排查CloudFormation栈创建回滚问题的步骤
查看CloudFormation控制台的栈事件详情
直接登录us-west-2区域的CloudFormation控制台,找到处于ROLLBACK_COMPLETE状态的,进入事件标签页。事件按时间顺序展示每个资源的创建、失败、回滚过程,失败的资源会标注具体错误信息,这是定位根因最直接的方式。 检查手动创建资源的依赖配置
之前删除栈时把手动创建的资源设为可选,重新部署时要确认:- 这些手动资源是否还在当前AWS环境里,且名称、ARN、权限等配置和模板里引用的完全一致
- 模板里对这些资源的引用是否正确,比如用
Condition控制创建逻辑,或者ImportValue、参数引用有没有写错 - 部署栈用的IAM角色有没有足够权限访问这些手动资源,比如能不能读取手动创建的S3桶、Lambda层等
验证SAM模板的语法和逻辑错误
- 执行
sam validate命令检查模板有没有语法错误 - 核对模板中资源的
DependsOn依赖关系,避免因创建顺序错误导致失败 - 确认模板里的参数、输出、条件逻辑在重新创建场景下是否适用,比如之前保留的资源会不会和模板配置冲突
- 执行
查看相关服务的日志
如果回滚是某个具体资源(比如Lambda、RDS、ECS)创建失败导致的,去对应服务的控制台查详细日志:- Lambda:查看函数的创建日志或初始化阶段的执行日志
- RDS:检查数据库实例的创建事件和错误日志
- S3:核对桶的权限配置或存储相关错误
检查变更集的详细内容
在CloudFormation控制台找到变更集ChangeSet-2023-01-14T01-30-51Z,查看里面的资源增删改详情,确认有没有不符合预期的变更,比如误操作手动资源或者创建冲突资源
内容的提问来源于stack exchange,提问作者Ajit Goel
相关产品推荐
相关产品推荐

