

# CloudFormation テンプレートの Transform セクション
<a name="transform-section-structure"></a>

`Transform` セクション (オプション) では、CloudFormation が何らかの方法でテンプレートを処理するために使用するマクロを 1 つ以上指定します。

マクロを使うと、テキストの検索や置換といった簡単なタスクを実行できるほか、テンプレート全体に対して広範に変換を行うことができます。CloudFormation は、指定された順にマクロを実行します。変更セットを作成すると、CloudFormation は処理したテンプレートコンテンツを変更セットに含めます。その後、変更内容を確認して変更セットを実行できます。マクロの仕組みの詳細については、「[テンプレートマクロを使用して CloudFormation テンプレートでカスタム処理を実行する](template-macros.md)」を参照してください。

CloudFormation は、トランスフォームもサポートしています。トランスフォームとは、CloudFormation がホストするマクロのことです。トランスフォームの実行順序とスコープは、自分で作成したマクロと同じように処理されます。詳細については、「[変換のリファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/transform-reference.html)」を参照してください。

複数のマクロを宣言するには、リスト形式を使用して 1 つ以上のマクロを指定します。

例えば、以下のテンプレートサンプルでは、CloudFormation はまず `MyMacro` を評価し、次に `AWS::Serverless` を評価します。どちらも `Transform` セクションに含まれているため、テンプレート全体のコンテンツを処理できます。

```
# Start of processable content for MyMacro and AWS::Serverless
Transform:
  - MyMacro
  - 'AWS::Serverless'
Resources:
  WaitCondition:
    Type: AWS::CloudFormation::WaitCondition
  MyBucket:
    Type: AWS::S3::Bucket
    Properties: 
      BucketName: amzn-s3-demo-bucket
      Tags: [{"key":"value"}]
      CorsConfiguration: []
  MyEc2Instance:
    Type: AWS::EC2::Instance 
    Properties:
      ImageId: ami-1234567890abcdef0
# End of processable content for MyMacro and AWS::Serverless
```