AWS CDK Metadata を出力させなくする方法

はじめに

AWS CDK で synth や deploy を実行すると Metadata が出力される。
Metadata を出力しないようにする方法がある。
以降で、cdk synth で Metadata を出力しないようにする方法を記載する。
ちなみに、cdk deploy で同様のオプションを指定することができる。

Metadata には2種類が存在する。
それぞれの Metadata を出力しない方法について記載する。

  • 各リソースの Metadata

Metadata の aws:cdk:path に、スタック名とリソース名が出力される。

  IamGroup:
    Type: AWS::IAM::Group
    Properties:
      GroupName: gruop-curry9999
    Metadata:
      aws:cdk:path: prd-iam/IamGroup
  • CloudFormation テンプレートの末尾に作成される CDKMetadata

Metadata には aws:cdk:path に、スタック名とリソース名が出力される。

  CDKMetadata:
    Type: AWS::CDK::Metadata
    Properties:
      Modules: aws-cdk=0.32.0,@aws-cdk/aws-iam=0.32.0,@aws-cdk/cdk=0.32.0,@aws-cdk/cx-api=0.32.0,@aws-cdk/region-info=0.32.0,jsii-runtime=node.js/v8.16.0

CDK の Metadata オプション解説

  • 各リソースの Metadata を出力したくない場合

オプション –path-metadata に false を設定する。

Example: cdk synth prd-iam --path-metadata false
  • 各リソースの CDKMetadata を出力したくない場合

オプション –version-reporting に false を設定する。

cdk synth prd-iam --version-reporting false

事前準備

AWS CDK のインストールはこちらを参照

Metadata の出力をオプション指定で切り替える

  • デフォルト
$ cdk synth prd-iam
Resources:
  IamGroup:
    Type: AWS::IAM::Group
    Properties:
      GroupName: gruop-curry9999
    Metadata:
      aws:cdk:path: prd-iam/IamGroup
  CDKMetadata:
    Type: AWS::CDK::Metadata
    Properties:
      Modules: aws-cdk=0.32.0,@aws-cdk/aws-iam=0.32.0,@aws-cdk/cdk=0.32.0,@aws-cdk/cx-api=0.32.0,@aws-cdk/region-info=0.32.0,jsii-runtime=node.js/v8.16.0
  • 各リソースの Metadata を出力しない
$ cdk synth prd-iam --path-metadata false
Resources:
  IamGroup:
    Type: AWS::IAM::Group
    Properties:
      GroupName: gruop-curry9999
  CDKMetadata:
    Type: AWS::CDK::Metadata
    Properties:
      Modules: aws-cdk=0.32.0,@aws-cdk/aws-iam=0.32.0,@aws-cdk/cdk=0.32.0,@aws-cdk/cx-api=0.32.0,@aws-cdk/region-info=0.32.0,jsii-runtime=node.js/v8.16.0
  • CDKMetadata を出力しない
$ cdk synth prd-iam --version-reporting false
Resources:
  IamGroup:
    Type: AWS::IAM::Group
    Properties:
      GroupName: gruop-curry9999
    Metadata:
      aws:cdk:path: prd-iam/IamGroup
  • 各リソースの Metadata を出力しない & CDKMetadata を出力しない
$ cdk synth prd-iam --path-metadata false --version-reporting false
Resources:
  IamGroup:
    Type: AWS::IAM::Group
    Properties:
      GroupName: gruop-curry9999

まとめ

Metadata を要件に合わせて出力制御できることを認識していただければ幸いです。

その他

今回使用したソースコードを下記のリポジトリに格納した。
実行する方法を記載する。

$ git clone -b blog-linux https://github.com/curry9999/devops.git
$ cd devops/
$ ./exec/_deploy_test.sh