You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CDK部署CodePipeline堆栈反复报ROLLBACK_COMPLETE错误如何解决

问题排查与解决方案

核心错误根因定位步骤

你当前看到的ROLLBACK_COMPLETE只是CloudFormation堆栈部署失败后的最终状态,不是具体错误原因,请先按照以下步骤获取真实报错:

  1. 登录AWS控制台,切换到us-east-2区域
  2. 进入CloudFormation服务页,找到部署失败的对应堆栈
  3. 点击「事件」标签,按时间倒序查找第一条状态为FAILED的事件,该事件的错误描述即为部署失败的根本原因

现有代码与配置的常见问题排查

1. 硬编码资源名称冲突

你在pipeline_stack.py中写死了流水线名称:

pipeline = pipelines.CodePipeline(self, "UsamaPipeline", pipeline_name = "UsamaPipeline", synth = synth)

即使你更换了CloudFormation堆栈名称,只要CodePipeline服务中还存在名为UsamaPipeline的遗留资源,新堆栈创建时就会因为资源重名触发回滚。请先到CodePipeline控制台删除对应遗留流水线。

2. 目录结构不匹配

你Synth步骤的路径配置严格依赖GitHub仓库的目录结构:

commands = ["cd UsamaAndromedaSkipQ/infra", "pip install -r requirements.txt", "npm install -g aws-cdk", "cdk synth"], 
primary_output_directory = "UsamaAndromedaSkipQ/infra/cdk.out"

请确认你的GitHub仓库根目录下存在UsamaAndromedaSkipQ/infra路径,且该路径下存放了完整的CDK项目文件(包括requirements.txt、app.py、cdk.json等),路径不匹配会直接导致Synth步骤执行失败。

3. 密钥与权限问题

请验证以下配置是否正确:

  • us-east-2区域的Secrets Manager中存在名为usama_secret的密钥,且密钥中存在github_access字段,对应的值是有目标GitHub仓库读取权限的个人访问令牌
  • 你部署CDK使用的IAM身份(Cloud9的实例角色)拥有secretsmanager:GetSecretValue权限
  • 目标AWS账号315997497220的us-east-2区域已经完成CDK Bootstrap,且Bootstrap版本与你使用的CDK版本匹配

4. CDK版本不匹配

你在Synth步骤中全局安装最新版CDK:npm install -g aws-cdk,如果你的Cloud9本地环境、requirements.txt中依赖的CDK包版本与全局安装的版本不一致,会导致Synth产物格式错误,触发部署失败。建议固定CDK版本:
本地、requirements.txt、Synth步骤安装的CDK版本保持一致,比如都指定为v2.80.0:npm install -g aws-cdk@2.80.0,同时requirements.txt中对应的aws-cdk包也指定相同版本。

5. 依赖缺失

检查UsamaAndromedaSkipQ/infra/requirements.txt中是否包含所有用到的依赖包,至少需要包含:

aws-cdk.core
aws-cdk.pipelines
aws-cdk.aws-codepipeline-actions

缺失依赖会导致cdk synth执行失败。

内容的提问来源于stack exchange,提问作者Usama Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 20:24:03