执行amplify push时报CloudFormation栈UPDATE_ROLLBACK_FAILED错误如何解决
AWS Amplify推送报错UPDATE_ROLLBACK_FAILED修复方案
错误原因
手动删除了Amplify托管的DynamoDB表后,CloudFormation栈的实际资源状态与模板记录的预期状态不匹配,执行amplify push触发更新失败后回滚也无法完成,因此栈被锁定在UPDATE_ROLLBACK_FAILED状态,禁止所有更新操作。
修复步骤
1. 解除CloudFormation栈的锁定状态
- 登录AWS管理控制台,切换到CloudFormation服务,定位到报错信息中对应的栈
amplify-imedia-dev-181304 - 点击右上角「堆栈操作」下拉菜单,选择「继续更新回滚」
- 在配置页面的高级选项中,勾选你手动删除的DynamoDB表对应的资源条目,设置为跳过该资源的回滚操作,确认提交
- 等待栈状态更新为
UPDATE_ROLLBACK_COMPLETE,此时栈的锁定状态已解除
2. 同步本地与云端的Amplify配置
栈状态恢复正常后,需要修正本地配置和云端资源的差异:
- 执行
amplify status查看本地API和数据库资源的当前状态,确认被误删的表对应的模型配置- 如果你确实需要删除该表:打开本地路径
amplify/backend/api/<你的API名称>/schema.graphql,删除对应表的模型定义后保存 - 如果你是误删需要恢复该表:先确认DynamoDB控制台中该表已被彻底删除,执行
amplify pull --appId <你的Amplify应用ID> --envName dev拉取云端最新配置到本地,再将需要的表模型重新写回schema文件
- 如果你确实需要删除该表:打开本地路径
3. 重新执行资源推送
配置确认无误后,执行推送命令:
amplify push
确认命令行输出的资源变更清单符合预期后输入yes,等待推送完成即可。
后续规避建议
不要手动修改Amplify通过CloudFormation托管的底层资源,所有资源变更都通过修改本地配置后执行amplify push完成,避免出现状态不一致的问题。
内容的提问来源于stack exchange,提问作者Dilshod Sh
相关产品推荐
相关产品推荐

