AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

トランスフォーム

オプションの Transform セクションで、AWS CloudFormation がテンプレートを処理するために使用するマクロを 1 つ以上指定します。Transform セクションは、強力なマクロシステムを持つ AWS CloudFormation のシンプルな宣言型言語を基盤にして構築されています。

テンプレート内で 1 つ以上のマクロを宣言できます。マクロは、AWS CloudFormation によって、指定された順序で実行されます。変更セットを作成すると、AWS CloudFormation は処理されたテンプレートコンテンツを含む変更セットを生成します。その後、変更内容を確認して変更セットを実行できます。詳細については、「AWS CloudFormation マクロを使用したテンプレートのカスタム処理の実行」を参照してください。

AWS CloudFormation は、AWS::Serverless および AWS::Include 変換もサポートし、これらは、AWS CloudFormation によってホストされるマクロです。AWS CloudFormation は、これらの変換を実行順序とスコープの観点から作成したすべてのマクロと同じように扱います。

  • AWS::Serverless 変換で、使用する AWS Serverless Application Model (AWS SAM) のバージョンを指定します。このモデルでは、使用できる AWS SAM 構文と、AWS CloudFormation がそれをどのように処理するかを定義します。サーバーレスアプリケーションおよび AWS SAM の詳細については、AWS Lambda Developer Guide の「Lambda ベースのアプリケーションをデプロイする」を参照してください。

  • AWS::Include 変換では、メインの AWS CloudFormation テンプレートとは別に保存されているテンプレートスニペットを利用します。これらのスニペットは、変更セットの作成、または 変更セットを使用したスタックの更新 時にメインテンプレートに挿入することができます。

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

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

// Start of processable content for MyMacro and AWS::Serverless AWSTemplateFormatVersion: 2010-09-09 Transform: [MyMacro, AWS::Serverless] Resources: WaitCondition: Type: AWS::CloudFormation::WaitCondition MyBucket: Type: 'AWS::S3::Bucket' Properties: BucketName: MyBucket Tags: [{"key":"value"}] CorsConfiguration:[] MyEc2Instance: Type: 'AWS::EC2::Instance' Properties: ImageID: "ami-123" // End of processable content for MyMacro and AWS::Serverless