web-dev-qa-db-ja.com

CloudFormation Templateで値をループする方法

AWS CloudFormation Templateにカンマ区切りのパラメータのリストを渡して、それらの値に基づいて複数のAmazon S3バケットを作成します。

私はカンマ区切りの国名のリストを渡している必要があり、その後CloudFormation Templateはその多くのS3バケットを構築します(パラメータに渡された国の名前に基づいて)。

たとえば、パラメータのfr,us,gbを渡すと、スタックはfr_myprod_bucketus_myprod_bucketgb_myprod_bucketを作成する必要があります。

私は雲の構造のループにはないことを知っているので、私がこれを達成できる方法はわかりませんか?

7
Njoi

カウントマクロ

カウントマクロは、Cloudformationリソースのテンプレート全体のCountプロパティを提供します。カットアンドペーストしなくても、同じタイプの複数のリソースを指定できます。

したがって、次のようにします。

AWSTemplateFormatVersion: "2010-09-09"
Transform: Count
Resources:
  Bucket:
    Type: AWS::S3::Bucket
    Properties:
      Tags:
        - Key: TestKey
          Value: my bucket %d
    Count: 3
 _

次のようになります。

AWSTemplateFormatVersion: "2010-09-09"
Resources:
  Bucket1:
    Type: AWS::S3::Bucket
    Properties:
      Tags:
        - Key: TestKey
          Value: my bucket 1
  Bucket2:
    Type: AWS::S3::Bucket
    Properties:
      Tags:
        - Key: TestKey
          Value: my bucket 2
  Bucket3:
    Type: AWS::S3::Bucket
    Properties:
      Tags:
        - Key: TestKey
          Value: my bucket 3
 _
1