はじめに
CDKでスタックをデプロイする前に、デプロイせずに変更セットだけ作成して
マネジメントコンソール等から変更差分を確認できるようにする方法をご紹介します。
CDKバージョン
$ cdk --version
2.171.0 (build 4957967)
cdk deployコマンドにオプションをつける
cdk deployコマンドに、オプションを追加して変更セットだけ作成できます。
以下の2パターンの方法があります。
① -m='prepare-change-set'オプションを使う
-m(--method)オプションの値にprepare-change-setを指定します。
$ cdk deploy -m='prepare-change-set'
or
$ cdk deploy --method='prepare-change-set'
このコマンドを実行すると、変更セットのみを作成することができます。
変更セット名は、デフォルトではcdk-deploy-change-setになります。
上記コマンドで変更セットを作成する度に、すでに作成された同名の変更セットは上書きされます。
なお、--change-set-nameで変更セット名を指定できます。
$ cdk deploy -m='prepare-change-set' --change-set-name='MyChangeSetName'
参考
AWS CDK CLI リファレンス:
https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/ref-cli-cmd-deploy.html#ref-cli-cmd-deploy-examples-6
② --no-executeオプションを使う
AWS CDK CLI リファレンスに記載はありませんが、このオプションでも変更セットを作成できます。
①の方法よりコマンドが短く済みます。
$ cdk deploy --no-execute
変更セット名は、①の方法同様にデフォルトではcdk-deploy-change-setになります。
--change-set-nameオプションで変更セット名を指定できます。
$ cdk deploy --no-execute --change-set-name='MyChangeSetName'
なお、--no-executeオプションについて、AWS CDK CLI リファレンスに記載はありませんがhelpコマンドでは確認できました。
※ しかし非推奨とのこと
$ cdk deploy help
cdk deploy [STACKS..]
Deploys the stack(s) named STACKS into your AWS account
Options:
#### ~省略~ ####
--execute Whether to execute ChangeSet (--no-execute will NOT
execute the ChangeSet) (deprecated)
[deprecated] [boolean]
#### ~省略~ ####