如何在cdk.json中配置自定义bootstrap存储桶名称
cdk.json配置自定义引导存储桶的方法
问题场景
已通过自定义参数执行CDK引导命令:cdk bootstrap --bootstrap-bucket-name foo --toolkit-stack-name cdk-foo --qualifier foo-backnd
仅查询到@aws-cdk/core:bootstrapQualifier配置项的相关文档,未找到自定义引导存储桶名的对应配置说明,执行CDK操作时抛出报错:[100%] fail: No bucket named 'xyz-123456789-us-east-1'. Is account 123456789 bootstrapped?
解决步骤
- 打开项目根目录下的
cdk.json文件,在context配置块中补充自定义引导桶的配置项,和已有的qualifier配置并列即可,示例如下:
{ "app": "npx ts-node bin/your-app.ts", "context": { "@aws-cdk/core:bootstrapQualifier": "foo-backnd", "@aws-cdk/core:bootstrapBucketName": "foo" } }
注意:以上示例仅展示需要新增的核心配置,原有项目的
app配置、其他context配置请保留,不要直接覆盖
- 清除本地旧的CDK上下文缓存,避免旧配置干扰:
cdk context --clear - 执行
cdk synth验证配置是否生效,正常情况下不会再抛出桶不存在的报错
注意事项
- CDK默认拼接的引导桶名规则为
cdk-<qualifier>-assets-<账号ID>-<区域>,自定义桶名后必须显式配置@aws-cdk/core:bootstrapBucketName参数,否则CDK仍会按照默认规则拼接桶名寻址,触发找不到桶的报错 - 自定义的
--toolkit-stack-name参数不需要额外在cdk.json中配置,CDK会根据配置的qualifier自动匹配对应名称的toolkit栈 - 执行CDK操作前需确认当前命令行的账号、区域配置和执行bootstrap时的账号、区域完全一致,跨账号、跨区域的引导资源不通用
- 若配置完成后仍出现同类报错,可检查引导桶的权限配置,确认当前执行CDK操作的身份拥有该桶的读写权限
内容的提问来源于stack exchange,提问作者reikje
相关产品推荐
相关产品推荐

