已执行cdk bootstrap后cdk deploy仍报SSM参数不存在错误
CDK部署提示找不到/cdk-bootstrap/pen/version SSM参数报错处理
报错场景
执行cdk deploy、cdk deploy --hotswap操作时持续抛出错误,即使已完成bootstrapping引导流程、AWS控制台可查所有必需的CloudFormation模板,核心报错为找不到SSM参数/cdk-bootstrap/pen/version,完整错误日志:
❌ tservings failed: Error: tservings: SSM parameter /cdk-bootstrap/pen/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' at CloudFormationDeployments.validateBootstrapStackVersion (/Users/user/Documents/tservings/node_modules/aws-cdk/lib/api/cloudformation-deployments.ts:482:13) at processTicksAndRejections (node:internal/process/task_queues:96:5) at CloudFormationDeployments.publishStackAssets (/Users/user/Documents/tservings/node_modules/aws-cdk/lib/api/cloudformation-deployments.ts:457:7) at CloudFormationDeployments.deployStack (/Users/user/Documents/tservings/node_modules/aws-cdk/lib/api/cloudformation-deployments.ts:339:7) at CdkToolkit.deploy (/Users/user/Documents/tservings/node_modules/aws-cdk/lib/cdk-toolkit.ts:209:24) at initCommandLine (/Users/user/Documents/tservings/node_modules/aws-cdk/lib/cli.ts:341:12) tservings: SSM parameter /cdk-bootstrap/pen/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' 👾 Task "watch" failed when executing "cdk deploy --hotswap" (cwd: /Users/user/Documents/tservings)
根因排查方向
- 引导栈qualifier标识不匹配:报错路径中的
pen是CDK引导栈的自定义qualifier值,当前部署流程读取qualifier为pen的引导资源,但之前执行bootstrap时用了默认值hnb659fds或其他自定义qualifier,未生成对应路径下的version参数 - 引导环境与部署环境不匹配:之前执行bootstrap时指定的AWS账号、区域和当前部署目标的账号、区域不一致,目标环境下无对应引导资源
- 引导栈版本过旧:使用1.46.0以前版本的CDK执行bootstrap时,引导模板不会自动创建version SSM参数,升级CDK CLI版本后新增的版本校验逻辑无法读取到对应参数
- IAM权限不足:当前执行部署的AWS身份没有
ssm:GetParameter权限读取对应路径参数,会返回参数不存在的同类报错
修复方案
- 检查项目根目录
cdk.json配置,如果存在"qualifier": "pen"的自定义配置,执行对应qualifier的引导命令补全资源:cdk bootstrap --qualifier pen aws://<替换为你的AWS账号ID>/<替换为部署目标区域> - 如果没有自定义过qualifier,删除
cdk.json中多余的qualifier配置项,针对当前部署的账号+区域重新执行bootstrap,执行前先用aws sts get-caller-identity和aws configure get region确认当前凭证对应的账号、区域和部署目标一致 - 旧版本引导栈升级场景,加
--force参数重新执行bootstrap,升级引导栈模板补全缺失的SSM参数:cdk bootstrap aws://<替换为你的AWS账号ID>/<替换为部署目标区域> --force - 检查当前AWS凭证绑定的IAM权限,确保身份拥有
ssm:GetParameter操作/cdk-bootstrap/*路径资源的权限 - 确认控制台已存在对应引导栈的情况下,可手动在SSM参数存储创建对应参数跳过校验:参数路径设为
/cdk-bootstrap/pen/version,类型为字符串,值填写当前使用的CDK主版本号(CDK v2版本填21即可)
内容的提问来源于stack exchange,提问作者chowacross
相关产品推荐
相关产品推荐

