例えば以下のコードは、イベント内容をそのままレスポンスするLambda関数URLを含む単純なスタックをCDKで作成するためのもの。ここではリソースはすべて Cfn*
で記載してる。
このコードを普通に cdk synth
した場合…
標準出力されるyaml形式のテンプレートは以下の通り。
これでもいいんだけど、これだとCloudFormationテンプレートを普通に手書きした場合とはちょっと雰囲気が違う。
Parameters
セクションに BootstrapVersion
が追加されている。また、その入力値をバリデーションするための CheckBootstrapVersion
ルールが Rules
セクションに追加されている。
Resources
セクション以下の各リソースに Metadata
(aws:cdk:path
) が追加されている。
Resources
セクション以下に CDKMetadata
リソースが追加されている。
AWSTemplateFormatVersion
セクションが無い。(なくてもいいけど)
Description
が無い。
なので、以下の通りにCDKのコードを変更する。コメントに★がついてるところ付近が変更点。
スタック内で AWSTemplateFormatVersion
と Description
の値をセットしている。また、スタックを new するときにオプションで synthesizer
を指定し、BootstrapVersion
の出力をOFFにしている。
さらに、このコードを以下のコマンドで cdk synth
する。
オプション --no-version-reporting
により CDKMetadata
リソースの、オプション --path-metadata false
により Metadata
(aws:cdk:path
) の出力をOFFにしている。これで出力されるテンプレートは以下の通り。
これでCDK特有の属性が除去されて、手書きした場合と同じようなテンプレートになる。
なおCLIで指定するオプション --no-version-reporting
は、 cdk.json
に以下のように記載しても可。
以上。