はじめに
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
事前準備
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