AWS::LanguageExtensions
変換
AWS::LanguageExtensions
変換は、AWS CloudFormation によってホストされるマクロです。これにより、組み込み関数や、AWS CloudFormation にデフォルトでは含まれていないその他の機能を使用できます。テンプレートが AWS::LanguageExtensions
を参照する場合、変更セットを使用してスタックを作成または更新している場合、AWS CloudFormation は変換によって定義された任意の組み込み関数をテンプレート内の解決された値に更新します。AWS CloudFormation テンプレートに AWS::LanguageExtensions
変換を追加したら、組み込み関数を Ref と Fn::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::Length
とFn::ToJsonString
を挙げることができます。これらの関数に対する明示的なリファレンスを使用します。例えば、!Length
ではなくFn::Length
を使用します。 -
複数の変換を使用している場合は、リスト形式を使用します。カスタムマクロを使用している場合は、カスタムマクロの後にAWS 提供の変換を配置します。
AWS::LanguageExtensions
とAWS::Serverless
の両方の変換を使用している場合、AWS::LanguageExtensions
変換はリスト内でAWS::Serverless
変換の前に来る必要があります。 -
AWS::LanguageExtensions
変換で提供される関数と属性は、テンプレートのResources
、Conditions
、およびOutputs
セクションでのみサポートされています。
マクロの詳細については、「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