AWS CDK v2.91.0 で CDK diff コマンドに –quiet オプションが追加され、進捗メッセージを抑制できるようになりました
こんにちは、CX事業本部 Delivery部の若槻です。
本日リリースされた AWS CDK v2.91.0 で、cdk diff
コマンドに --quiet
オプションが追加されました。
試してみたところとてもマイナーなアップデートだったのですが、せっかくなのでご紹介します。
試してみる
モジュールのアップデート
AWS CDK コマンドを v2.91.0 以上にアップグレードします。
npm i -g aws-cdk@latest
CDK コマンドの機能なので、アプリケーションのパッケージのアップデートは必須ではありません。
スタックに差分が無い場合
まずはスタックに差分が無い場合を確認してみます。
--quiet オプションなし
--quiet
オプションなしの場合は次のようになります。スタック毎の進捗メッセージが表示されます。
$ cdk diff Stack CdkSampleStack There were no differences Stack CdkSampleStack2 There were no differences Number of stacks with differences: 0
差分が無い場合はスタックごとにStack <Stack 名>
およびThere were no differences
というメッセージが表示され、最後にNumber of stacks with differences: X
と表示されます。
--quiet オプションあり
次に--quiet
オプションを付けてみます。
$ cdk diff --quiet Number of stacks with differences: 0
--quiet
オプションを付けると、スタックごとの差分無しを示すメッセージが省略される挙動となりました。
スタックに差分がある場合
次にスタックに差分がある場合を確認してみます。
--quiet オプションなし
--quiet
オプションなしの場合は次のように表示されます。
$ cdk diff Stack CdkSampleStack There were no differences Stack CdkSampleStack2 Resources [-] AWS::Logs::LogGroup LogGroup2 LogGroup2477F707C orphan [-] AWS::SNS::Topic Topic2 Topic269377B75 destroy Number of stacks with differences: 2
--quiet オプションあり
そして、--quiet
オプションを付けてみます。
$ cdk diff --quiet Resources [-] AWS::Logs::LogGroup LogGroup2 LogGroup2477F707C orphan [-] AWS::SNS::Topic Topic2 Topic269377B75 destroy Number of stacks with differences: 2
スタックごとの差分の有無を示すメッセージが省略され、単にリソースの差分が表示されるだけとなりました。
複数のスタックに差分がある時
複数のスタックに差分がある時に --quiet
オプションをつけた場合。
$ cdk diff --quiet Resources [-] AWS::SNS::Topic Topic TopicBFC7AF6E destroy Resources [+] AWS::SNS::Topic Topic TopicBFC7AF6E Number of stacks with differences: 2
どのリソースの差分がどのスタックにのものであるかが表示だけだと分からなくなります。
スタック新規作成時
スタック新規作成時に --quiet
オプションをつけた場合。
$ cdk diff --quiet Parameters [+] Parameter BootstrapVersion BootstrapVersion: {"Type":"AWS::SSM::Parameter::Value<String>","Default":"/cdk-bootstrap/hnb659fds/version","Description":"Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]"} Conditions [+] Condition CDKMetadata/Condition CDKMetadataAvailable: {"Fn::Or":[{"Fn::Or":[{"Fn::Equals":[{"Ref":"AWS::Region"},"af-south-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ap-east-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ap-northeast-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ap-northeast-2"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ap-south-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ap-southeast-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ap-southeast-2"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"ca-central-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"cn-north-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"cn-northwest-1"]}]},{"Fn::Or":[{"Fn::Equals":[{"Ref":"AWS::Region"},"eu-central-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"eu-north-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"eu-south-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"eu-west-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"eu-west-2"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"eu-west-3"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"me-south-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"sa-east-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"us-east-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"us-east-2"]}]},{"Fn::Or":[{"Fn::Equals":[{"Ref":"AWS::Region"},"us-west-1"]},{"Fn::Equals":[{"Ref":"AWS::Region"},"us-west-2"]}]}]} Other Changes [+] Unknown Rules: {"CheckBootstrapVersion":{"Assertions":[{"Assert":{"Fn::Not":[{"Fn::Contains":[["1","2","3","4","5"],{"Ref":"BootstrapVersion"}]}]},"AssertDescription":"CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI."}]}} Number of stacks with differences: 3
やはりスタックごとの差分の有無を示すメッセージは省略されます。
おわりに
AWS CDK v2.91.0 で、cdk diff
コマンドに --quiet
オプションが追加されたのでご紹介しました。
このアップデートの背景としては、下記の Issue を見ると、数百を超えるスタックがある環境で cdk diff
コマンドで差分を出力してレビューをしたい場合に、スタックごとの差分の有無を示すメッセージを省略することで、レビューをしやすくするためとのことです。
同様のケースの場合にご利用を検討ください。
以上