AWS::LanguageExtensions 轉換程序 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

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 呼叫中使用轉換之前的原始範本。堆疊會使用新的參數值進行更新。

  • 僅由 AWS::LanguageExtensions 轉換提供的內部函數在範本中不支援簡短格式 YAML 語法。僅由 AWS::LanguageExtensions 轉換提供的內部函數範例包括 Fn::LengthFn::ToJsonString。使用這些函數的明確參考。例如,使用 Fn::Length 代替 !Length

  • 如果您使用多個轉換,請使用清單格式。如果您使用的是自訂巨集,請在自訂巨集之後放置 AWS提供的變形。如果您同時使用 AWS::LanguageExtensionsAWS::Serverless 轉換,則在清單中,AWS::LanguageExtensions 轉換必須排在 AWS::Serverless 轉換之前。

  • 僅在範本的 ResourcesConditionsOutputs 區段中,支援 AWS::LanguageExtensions 轉換提供的功能和屬性。

如需有關使用巨集的詳細資訊,請參閱 建立 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