更新CustomResources.json时Amplify Push报错:资源状态非stackUpdateComplete
解决AWS Amplify Push失败(Resource is not in the state stackUpdateComplete)的方案
1. 检查CloudFormation栈状态
- 登录AWS控制台,进入CloudFormation服务,定位Amplify对应的项目栈(命名通常为
amplify-<项目名>-<环境名>-<数字>-<资源类型>) - 查看栈的当前状态:
- 若为
ROLLBACK_COMPLETE或UPDATE_ROLLBACK_COMPLETE,点击栈选择「更新栈」,使用当前模板重新执行更新 - 若栈处于无法修复的异常状态,可先备份相关数据后删除栈,再重新运行
amplify push
- 若为
2. 验证ElasticSearch资源配置
- 检查
CustomResources.json中的ElasticSearch定义:- 确认实例类型、存储配置符合所在AWS区域的支持范围
- 核对AccessPolicies的语法和权限,确保Amplify角色能正常访问ES资源
- 检查带
@searchable的Property模型:确保Coord类型的地理空间字段格式符合ElasticSearch的geo_point类型要求
3. 排查自定义查询与解析器
- 验证
nearbyProperties自定义查询的GraphQL Schema:参数、返回类型需与解析器模板完全匹配 - 检查请求/响应VTL模板:
- 确认ES端点地址拼写正确
- 地理空间查询的DSL语法符合当前ES版本规范(比如
geo_distance查询的格式)
- 运行
amplify validate命令,扫描schema和配置文件的语法错误
4. 重置Amplify本地状态并同步
- 执行以下命令同步云端状态到本地:
amplify env pull amplify status - 若本地与云端状态不一致,运行
amplify sync修正后,再次尝试amplify push,同时观察控制台的详细报错信息定位问题资源
5. 检查AWS服务配额
- 确认当前AWS账户在目标区域的ElasticSearch服务配额(实例数量、存储容量等)足够
- 若配额不足,提交AWS服务配额提升申请
内容的提问来源于stack exchange,提问作者Physix
相关产品推荐
相关产品推荐

