🤢

[解決]CDKのエラー`SSM parameter /cdk-bootstrap/hnb659fds/version not found.

2022/08/07に公開

解決方法

アセットの入っているS3バケットを削除して、bootstrapをやり直し。(中身はいちおう別のバケットにコピーしておいた。)

原因?

よくわかりませんが、ToolKitスタックを消してしまったのかも?

エラー内容

cdk deployしようとしたら、SSMパラメタがない、cdk bootstrapせよとエラー。

SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap'

 ❌  Test01Stack failed: Error: Test01Stack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)
    at CloudFormationDeployments.validateBootstrapStackVersion (/usr/local/lib/node_modules/aws-cdk/lib/api/cloudformation-deployments.ts:482:13)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at CloudFormationDeployments.publishStackAssets (/usr/local/lib/node_modules/aws-cdk/lib/api/cloudformation-deployments.ts:457:7)
    at CloudFormationDeployments.deployStack (/usr/local/lib/node_modules/aws-cdk/lib/api/cloudformation-deployments.ts:339:7)
    at CdkToolkit.deploy (/usr/local/lib/node_modules/aws-cdk/lib/cdk-toolkit.ts:209:24)
    at initCommandLine (/usr/local/lib/node_modules/aws-cdk/lib/cli.ts:341:12)

Test01Stack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)

cdk bootstrapしたらバケットが存在しているのでエラー

cdk bootstrap

してみるも、エラー。cdk-hnb659fds-assets-111111111111-ap-northeast-1 already existsなのでbootstrapに失敗すると。


 ⏳  Bootstrapping environment aws://111111111111/ap-northeast-1...
Trusted accounts for deployment: (none)
Trusted accounts for lookup: (none)
Using default execution policy of 'arn:aws:iam::aws:policy/AdministratorAccess'. Pass '--cloudformation-execution-policies' to customize.
myToolKit: creating CloudFormation changeset...
6:32:57 PM | CREATE_FAILED        | AWS::S3::Bucket       | StagingBucket
cdk-hnb659fds-assets-111111111111-ap-northeast-1 already exists

 ❌  Environment aws://111111111111/ap-northeast-1 failed bootstrapping: Error: The stack named myToolKit failed creation, it may need to be manually deleted from the AWS console: ROLLBACK_COMPLETE: cdk-hnb659fds-assets-111111111111-ap-northeast-1 already exists
    at prepareAndExecuteChangeSet (/usr/local/lib/node_modules/aws-cdk/lib/api/deploy-stack.ts:385:13)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at /usr/local/lib/node_modules/aws-cdk/lib/cdk-toolkit.ts:575:24
    at async Promise.all (index 0)
    at CdkToolkit.bootstrap (/usr/local/lib/node_modules/aws-cdk/lib/cdk-toolkit.ts:572:5)
    at initCommandLine (/usr/local/lib/node_modules/aws-cdk/lib/cli.ts:341:12)

The stack named myToolKit failed creation, it may need to be manually deleted from the AWS console: ROLLBACK_COMPLETE: cdk-hnb659fds-assets-111111111111-ap-northeast-1 already exists

S3バケットを削除してから再開

cdk-hnb659fds-assets-111111111111-ap-northeast-1 というバケットには、CDKがデプロイする中身が入っているらしい。jsonのテンプレートとか、zip内にラムダファイルとか。

ついでにtoolkit名を変更

サーバワークス社のこちらのブログを参考にして、

cdk.jsonの"app"の下の行に、

  "toolkitStackName": "myToolKit",

と追加してやってみました。スタック名が変わる以上の効果は実際不明。

スタック名変える?

このブログでもStack名を変えろと書いてあるけど、いまいちわかっていない。

参考

似てる?
https://stackoverflow.com/questions/70230511/how-to-properly-delete-with-aws-cdk

Discussion