调整GraphQL schema后Amplify Push报错,CloudFormation栈回滚求助
解决Amplify推送时CloudFormation UPDATE_ROLLBACK_COMPLETE卡壳问题
针对React Native + AWS Amplify项目中,调整GraphQL Schema后推送更新时CloudFormation栈卡在UPDATE_ROLLBACK_COMPLETE、CLI报Resource is not in the state stackUpdateComplete的问题,以下是经过验证的解决步骤:
1. 强制重置CloudFormation栈状态
栈可能因内部状态异常卡住,用AWS CLI手动触发栈更新:
aws cloudformation update-stack --stack-name <你的认证栈全名> --use-previous-template --capabilities CAPABILITY_IAM CAPABILITY_NAMED_IAM
替换<你的认证栈全名>为CloudFormation控制台中显示的认证栈名称(格式通常为amplify-<项目名>-<环境名>-<数字>-auth)。执行完成后再尝试amplify push。
2. 清理本地元数据并同步后端配置
本地Amplify元数据可能与后端不一致,执行以下操作:
- 删除项目根目录下的
amplify/.temp文件夹 - 拉取后端最新配置:
amplify pull --appId <你的Amplify应用ID> --envName <环境名> - 重新执行
amplify push
3. 定位并修复认证栈的具体错误
进入CloudFormation控制台,查看认证栈的事件日志,找到触发回滚的具体资源错误(比如IAM角色权限冲突、Cognito资源配置非法)。根据错误提示修改本地amplify/auth/目录下的配置文件(如parameters.json、cli-inputs.json),修正配置后重新推送。
4. 极端情况:重建认证栈
若上述方法均无效,只能重建认证服务:
- (可选)导出Cognito用户池数据:进入AWS控制台的Cognito用户池,选择「用户和组」→「导出用户」保存用户数据
- 移除本地认证配置:
amplify remove auth - 重新添加认证服务:
配置时尽量与原保持一致(用户池名称、属性、认证方式等)amplify add auth - 推送更新:
amplify push - (可选)导入之前导出的用户数据到新用户池
5. 升级Amplify CLI到最新版本
旧版本CLI可能存在CloudFormation交互bug,升级到稳定版:
npm install -g @aws-amplify/cli
内容的提问来源于stack exchange,提问作者PSComputerScience
相关产品推荐
相关产品推荐

