🍵
"cdk synth"で付与されるMetadataを取り除く
前提
表題のように、CDKで書いたけどDeploy周りはCloudFormation(以下CFn)のスキームで管理したい場合、以下のコマンドでテンプレートを出力する。
cdk synth
CDKをヘビーに使う人はあまり使わない機能だが、
- CFnテンプレートをGit管理したい
- 既存テンプレートとマージしたい
- パイプしてCFn用の静的解析ツールを使いたい
等のユースケースがあるだろう。
ただ上述のコマンドで生成したテンプレートにはところどころMetadataが含まれている。可読性もよくないし、邪魔だ。消すためのTipsを都度ググってるので、この際まとめる。
メタデータなしのCFnテンプレートが欲しい
結論から言うと、このコマンドでMetadataなしのテンプレートを生成できる。
cdk synth --no-version-reporting --no-path-metadata
これでGitの不要なDiffを抑制できたり、おまじない行を一掃できる。
よく使う人はビルド環境に入れたりエイリアス登録しよう。
補足
-
--no-version-reporting
- 各リソースに付与されるMetadataを取り除くオプション
- Metadata = CloudFormationの機能
-
--no-path-metadata
- CFnテンプレートに
AWS::CDK::Metadata
の形で付与されるリソース(メタデータ) - e.g. CDKのモジュール情報
- CFnテンプレートに
参考
このメタデータの意味って何?が気になる場合は、以下の記事が参考になりそう。
※ネタ元でもあります。感謝:bow:
そもそも
これぐらいスッキリしたコマンドなら、改めて調べなくても使いやすい気がする。issueに改善提案してみよう。
cdk synth --no-metadata
Discussion