执行AWS CDK部署时遇错误:已执行Bootstrap但问题仍存在
CDK Deploy时资产桶找不到问题的排查与解决
问题描述
执行cdk deploy部署CDK应用时触发如下错误:
✨ Synthesis time: 8.02s NewlamStack: start: Building d61d5a108f7fbfde3ad135dcd054169e71324cf2ab736703bdda4a735c700f53:current_account-current_region NewlamStack: success: Built d61d5a108f7fbfde3ad135dcd054169e71324cf2ab736703bdda4a735c700f53:current_account-current_region NewlamStack: start: Building 062df176a6bc7fc148dc7b1c87268561e8bb53da619aefeea095db03c59653ea:current_account-current_region NewlamStack: success: Built 062df176a6bc7fc148dc7b1c87268561e8bb53da619aefeea095db03c59653ea:current_account-current_region NewlamStack: start: Publishing d61d5a108f7fbfde3ad135dcd054169e71324cf2ab736703bdda4a735c700f53:current_account-current_region NewlamStack: start: Publishing 062df176a6bc7fc148dc7b1c87268561e8bb53da619aefeea095db03c59653ea:current_account-current_region NewlamStack: fail: No bucket named 'cdk-hnb659fds-assets-024048322020-us-east-1'. Is account 024048322020 bootstrapped? NewlamStack: fail: No bucket named 'cdk-hnb659fds-assets-024048322020-us-east-1'. Is account 024048322020 bootstrapped? ❌ Deployment failed: Error: Failed to publish asset d61d5a108f7fbfde3ad135dcd054169e71324cf2ab736703bdda4a735c700f53:current_account-current_region at Deployments.publishSingleAsset (/home/burkiwsl/.nvm/versions/node/v18.19.1/lib/node_modules/aws-cdk/lib/index.js:433:11467) at async Object.publishAsset (/home/burkiwsl/.nvm/versions/node/v18.19.1/lib/node_modules/aws-cdk/lib/index.js:433:196681) at async /home/burkiwsl/.nvm/versions/node/v18.19.1/lib/node_modules/aws-cdk/lib/index.js:433:180800 Failed to publish asset d61d5a108f7fbfde3ad135dcd054169e71324cf2ab736703bdda4a735c700f53:current_account-current_region
已尝试执行cdk bootstrap aws://<我的账户ID>/<我的区域>进行环境引导,但错误依旧。操作环境为Windows10的WSL子系统,环境版本信息:
- nvm 0.38.0
- node v18.19.1
- cdk 2.133.0(build dcc1e75)
- aws-cli/2.15.32 Python/3.11.8 Linux/5.15.146.1-microsoft-standard-WSL2 exe/x86_64.ubuntu.22 prompt/off
- Python 3.10.12
解决方法
严格匹配Bootstrap的账户与区域
错误提示的资产桶对应账户024048322020、区域us-east-1,必须使用这两个精确值执行bootstrap:cdk bootstrap aws://024048322020/us-east-1执行后前往AWS控制台的S3服务,确认该桶是否成功创建。
检查AWS CLI配置正确性
WSL环境下的AWS配置文件位于~/.aws/credentials和~/.aws/config,通过以下命令查看当前默认配置:aws configure list若配置的账户/区域与目标不符,执行
aws configure重新设置,或在部署时指定正确配置文件:AWS_PROFILE=<你的配置文件名> cdk deploy强制重新Bootstrap
若Bootstrap资源未正确生成,带--force参数强制重新初始化:cdk bootstrap aws://024048322020/us-east-1 --force若存在旧的Bootstrap桶残留,可手动删除后再重新执行bootstrap(注意备份桶内有用资源)。
清理CDK上下文并验证环境变量
删除项目根目录下的cdk.context.json文件,执行cdk synth让CDK重新获取环境配置。同时检查CDK相关环境变量:echo $CDK_DEFAULT_ACCOUNT echo $CDK_DEFAULT_REGION若值不正确,临时设置后再部署:
export CDK_DEFAULT_ACCOUNT=024048322020 export CDK_DEFAULT_REGION=us-east-1 cdk deploy验证WSL的AWS凭证有效性
WSL有独立的文件系统,确保WSL内的AWS凭证正确,可执行以下命令测试:aws s3 ls确认能访问目标账户的S3服务,排除凭证失效问题。
内容的提问来源于stack exchange,提问作者Imran_Burki
相关产品推荐
相关产品推荐

