⚒️
[CDK] cdk diff が変更セットを生成するようになっている件
aws-cdk のバージョンを上げたら、diff を取るのにやたら時間がかかるようになったのですが、v2.119.0 以降で cdk diff に --change-set / --no-change-set
フラグが追加され、前者がデフォルトになったようです。
これにより diff を実行すると CloudFormation の変更セットを生成して差分を取得するようになります。今までの diff ではリソース ID が変わるだけの表面的な変更も、リソース置換として表示されてしまい「大丈夫か、、、?」と不安にさせられることがありましたが、変更セットを生成するようになることで deploy によって実際に発生する差分 (置換) が正しく表示されるようになるとのこと。
改めて現状のバージョン(v2.124.0)で挙動を確認すると cdk diff の実行中、変更があるスタックに差し掛かると以下の文言が表示されて、しばらく待たされます。
Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff)
開発中など、正確な diff 出さなくていいからもっとクイックにデプロイをしたい、という場合には --no-change-set
フラグをつけましょう。
変更セットを生成しない今まで通りの diff の挙動になります。
Discussion