メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

Transform

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

AWS CloudFormation 変換では、AWS インフランストラクチャの式をコードとして要約し、テンプレートコンポーネントを再利用できるようにすることで、テンプレート作成を簡素化します。たとえば、複数行のリソース宣言をテンプレートで 1 行に要約できます。

AWS CloudFormation は、変換の種類として、AWS::ServerlessAWS::Include をサポートしています。

  • AWS::Serverless 変換で、使用する AWS Serverless Application Model (AWS SAM) のバージョンを指定します。このモデルでは、使用できる AWS SAM 構文と、AWS CloudFormation がそれをどのように処理するかを定義します。変更セットを作成すると、AWS CloudFormation はすべての Transform 関数を解決します。サーバーレスアプリケーションおよび AWS SAM の詳細については、『AWS Lambda Developer Guide』の「Deploying Lambda-based Applications」を参照してください。

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

テンプレートでは、単一または複数の変換を宣言することができます。変換は、AWS CloudFormation によって、指定された順序で実行されます。

複数の変換を宣言するには、リスト形式を使用して、1 つ以上の AWS::Include 変換と (必要に応じて) AWS::Serverless 変換を指定します。以下の例では、2 つの AWS::Include 変換が宣言されています。

JSON

Copy
{ "Resources": { "MyBucket": { "Type": "AWS::S3::Bucket", "Properties": { "Fn::Transform": [ { "Name": "AWS::Include", "Parameters": { "Location": "s3://bucket/myBucketName.json" } }, { "Name": "AWS::Include", "Parameters": { "Location": "s3://bucket/myBucketAcl.json" } } ] } } } }

YAML

Copy
Resources: MyBucket: Type: 'AWS::S3::Bucket' Properties: 'Fn::Transform': - Name: 'AWS::Include' Parameters: Location: s3://bucket/myBucketName.yaml - Name: 'AWS::Include' Parameters: Location: s3://bucket/myBucketAcl.yaml

詳細と変換例については、以下のトピックを参照してください。

このページの内容: