AWS::LanguageExtensions 変換 - AWS CloudFormation

AWS::LanguageExtensions 変換

AWS::LanguageExtensions 変換は、AWS CloudFormation によってホストされるマクロです。これにより、組み込み関数や、AWS CloudFormation にデフォルトでは含まれていないその他の機能を使用できます。テンプレートが AWS::LanguageExtensions を参照する場合、変更セットを使用してスタックを作成または更新している場合、AWS CloudFormation は変換によって定義された任意の組み込み関数をテンプレート内の解決された値に更新します。AWS CloudFormation テンプレートに AWS::LanguageExtensions 変換を追加したら、組み込み関数を RefFn::GetAtt のパラメーターとして使用できます。

AWS::LanguageExtensions 変換は次の関数と属性をサポートします。

使用方法

変換の宣言の値には、リテラル文字列である必要があります。変換値の指定には、パラメータまたは関数は使用できません。変換の宣言の例として、このスニペットを参照してください。

テンプレートのトップレベルでの構文

テンプレートの最上位レベルにある AWS::LanguageExtensions 変換を使用します。AWS::LanguageExtensions 変換を、他のテンプレートセクションに埋め込まれた変換として使用することはできません。

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

パラメータ

AWS::LanguageExtensions 変換はパラメータを受け付けません。

解説

AWS::LanguageExtensions 変換を使用する際、以下の考慮事項に注意してください。

  • 別のパラメータ値を使用してスタックを更新する場合は、元のテンプレートに変換が含まれている --use-previous-template オプションを使用しないでください。UpdateStack 呼び出しには、変換前の元のテンプレートを使用します。スタックは新しいパラメータ値で更新されます。

  • 短縮形式の YAML 構文は、AWS::LanguageExtensions 変換でのみ使用できる組み込み関数のテンプレート内ではサポートされていません。AWS::LanguageExtensions 変換でのみ使用できる組み込み関数の例として、Fn::LengthFn::ToJsonString を挙げることができます。これらの関数に対する明示的なリファレンスを使用します。たとえば、!Length ではなく Fn::Length を使用します。

  • 複数の変換を使用している場合は、リスト形式を使用します。カスタムマクロを使用している場合は、カスタムマクロの後にAWS 提供の変換を配置します。AWS::LanguageExtensionsAWS::Serverless の両方の変換を使用している場合、AWS::LanguageExtensions 変換はリスト内で AWS::Serverless 変換の前に来る必要があります。

  • AWS::LanguageExtensions 変換で提供される関数と属性は、テンプレートの ResourcesConditions、および Outputs セクションでのみサポートされています。

マクロの詳細については、「AWS CloudFormation マクロ定義の作成」を参照してください。

次の例は、AWS::LanguageExtensions 変換を使用して、変換によって定義される Fn::Length 組み込み関数を使用する方法を示しています。

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::LanguageExtensions", "Parameters": { "QueueList": { "Type": "CommaDelimitedList" }, "QueueNameParam": { "Description": "Name for your SQS queue", "Type": "String" } }, "Resources": { "Queue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref": "QueueNameParam" }, "DelaySeconds": { "Fn::Length": { "Ref": "QueueList" } } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Transform: 'AWS::LanguageExtensions' Parameters: QueueList: Type: CommaDelimitedList QueueNameParam: Description: Name for your SQS queue Type: String Resources: Queue: Type: 'AWS::SQS::Queue' Properties: QueueName: !Ref QueueNameParam DelaySeconds: 'Fn::Length': !Ref QueueList