AWS::IncludeについてのTIPS

2021年2月23日火曜日

AWS CloudFormation

t f B! P L

CloudFormationテンプレートの一部を外出ししてAWS::Includeで取り込むことができ、最上位から特定の属性部分まで色んなところで使うことができますが、Value部分にだけ使うことはできません。

例えば↓はOKだけど

Resources:
  sample1:
    Type: 'AWS::SSM::MaintenanceWindow'
    Properties:
      Name: hogemw
      Fn::Transform:
        Name: AWS::Include
        Parameters:
          Location: sample.yml

↓はNGです。

Resources:
  sample1:
    Type: 'AWS::SSM::MaintenanceWindow'
    Properties:
      Name: hogemw
      Schedule: Fn::Transform:
        Name: AWS::Include
        Parameters:
          Location: sample.yml

また、LocationにはSubが使えます。以下の書き方はOKです。

Location: !Sub "s3://${S3BucketName}/${S3BucketKeyPrefix}sample.yml"

ただ、公式な情報は無く、そのうち利用できるようになるとは思いますが、記事執筆時点ではIfは使えません。以下の書き方はNGです。

Location: !If
  - conditionhoge
  - Sub "s3://${S3BucketName}/${S3BucketKeyPrefix}sample1.yml"
  - Sub "s3://${S3BucketName}/${S3BucketKeyPrefix}sample2.yml"

QooQ