

CDKでassetsを使うスタックはbootstrapしないとデプロイできない
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
何が起きたか
CDKでstackをデプロイしようとしたらこんなエラーが出た。
StackName failed: Error: This stack uses assets, so the toolkit stack must be deployed to the environment (Run "cdk bootstrap aws://unknown-account/unknown-region")assetsを使うstackなのに、toolkit stack(CDKToolkit)がまだその環境にデプロイされていない、というエラーである。
原因
CDKでLambdaのコードやDockerイメージなど、assetsをS3やECRにアップロードする構成の場合、アップロード先を用意する「bootstrap」を事前に実行しておく必要がある。今回は単純にそれをやっていなかっただけ。
対応
cdk bootstrapをリージョン指定で実行するだけで解決する。
$ cdk bootstrap --region ap-northeast-1 ⏳ Bootstrapping environment aws://000000000000/ap-northeast-1...CDKToolkit: creating CloudFormation changeset...[██████████████████████████████████████████████████████████] (3/3)
✅ Environment aws://000000000000/ap-northeast-1 bootstrapped.これでCDKToolkitのstackが作られて、assets保存用のS3バケットなどが用意される。再度デプロイしたら通った。
新しいアカウント・リージョンで初めてCDKを使う時はbootstrapが必要、というだけの話。単純な手順漏れだった。