Amplify发布部署失败:资源未处于stackUpdateComplete状态
Amplify Publish部署失败排查方案(hostingS3AndCloudFront栈更新失败)
问题现象
执行amplify publish时,成功拉取云端dev后端环境,确认继续部署后失败:
- hostingS3AndCloudFront对应的AWS::CloudFormation::Stack更新失败,资源未进入
stackUpdateComplete状态 - 根栈已完成回滚,LambdaEdgeProtection未部署
排查与修复步骤
- 查看CloudFormation事件日志定位根因
登录AWS控制台,打开CloudFormation服务,找到失败的hostingS3AndCloudFront栈,查看事件列表里的错误详情——这里会直接给出失败的具体原因,比如权限不足、资源冲突、依赖缺失等,是最有效的排查入口。 - 校验Lambda@Edge相关配置
因为LambdaEdgeProtection未部署,重点检查:- 关联的Lambda函数是否部署在
us-east-1区域(Lambda@Edge强制要求函数必须在该区域创建) - 函数的执行角色是否拥有
lambda:GetFunction、lambda:EnableReplication等必要权限 - 函数代码是否符合Lambda@Edge的限制(比如不能使用环境变量、内存配置需在允许范围内)
- 关联的Lambda函数是否部署在
- 检查S3与CloudFront资源状态
- 确认托管用的S3桶存在、配置正常,没有访问权限或存储类别的问题
- 查看对应CloudFront分发的状态,是否有正在进行的更新或已存在的错误
- 清理残留资源后重试部署
如果栈回滚不彻底,手动删除残留的未部署资源(比如未创建成功的Lambda@Edge函数、S3桶的临时配置项),之后重新执行amplify publish - 更新Amplify CLI到最新版本
旧版本CLI可能存在已知的部署bug,执行npm install -g @aws-amplify/cli更新到最新稳定版后再尝试部署
内容的提问来源于stack exchange,提问作者Vasanthan Raj
相关产品推荐
相关产品推荐

