AWS::LanguageExtensions-Transformation - AWS CloudFormation

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS::LanguageExtensions-Transformation

Die AWS::LanguageExtensions Transformation ist ein von gehostetes Makro AWS CloudFormation , mit dem Sie systeminterne Funktionen und andere Funktionen verwenden können, die nicht standardmäßig in enthalten sind. AWS CloudFormation Wenn eine Vorlage referenziert AWS::LanguageExtensions und Sie Stapel mithilfe von Änderungssätzen erstellen oder aktualisieren, AWS CloudFormation aktualisiert jede durch die Transformation definierte systeminterne Funktion auf ihren aufgelösten Wert innerhalb der Vorlage. Wenn Sie die AWS::LanguageExtensions Transformation zu einer AWS CloudFormation Vorlage hinzufügen, können Sie systeminterne Funktionen als Parameter für und verwenden. Ref Fn::GetAtt

Die AWS::LanguageExtensions-Transformation unterstützt die folgenden Funktionen und Attribute:

Verwendung

Der Wert der Transformationsdeklaration muss eine Literalzeichenfolge sein. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden. Im folgenden Ausschnitt sehen Sie ein Beispiel für die Deklaration einer Transformation:

Syntax der obersten Ebene einer Vorlage

Verwenden Sie die AWS::LanguageExtensions-Transformation auf der obersten Ebene einer Vorlage. Sie können die AWS::LanguageExtensions-Transformation nicht als eingebettete Transformation in einem anderen Vorlagenabschnitt verwenden.

JSON

"Transform": "AWS::LanguageExtensions"

YAML

Transform: AWS::LanguageExtensions

Parameter

Die AWS::LanguageExtensions-Transformation akzeptiert keine Parameter.

Anmerkungen

Bei der Verwendung der AWS::LanguageExtensions-Transformation ist Folgendes zu beachten:

  • Wenn Sie einen Stack mit einem anderen Parameterwert aktualisieren, verwenden Sie nicht die --use-previous-template-Option, bei der die Originalvorlage die Transformation enthält. Verwenden Sie die Originalvorlage vor der Transformation im UpdateStack-Aufruf. Der Stack wird mit den neuen Parameterwerten aktualisiert.

  • Kurzform-YAML-Syntax wird in einer Vorlage für intrinsische Funktionen nicht unterstützt, die nur von der AWS::LanguageExtensions-Transformation bereitgestellt wird. Beispiele für intrinsische Funktionen, die nur in derAWS::LanguageExtensions-Transformation verfügbar sind, sind Fn::Length und Fn::ToJsonString. Verwenden Sie explizite Verweise auf diese Funktionen. Verwenden Sie z. B. Fn::Length statt !Length.

  • Nutzen Sie ein Listenformat, wenn Sie mehrere Transformationen verwenden. Wenn Sie benutzerdefinierte Makros verwenden, platzieren Sie die von Ihnen AWS bereitgestellten Transformationen hinter Ihren benutzerdefinierten Makros. Wenn Sie sowohl AWS::LanguageExtensions- als auch AWS::Serverless-Transformationen verwenden, muss die AWS::LanguageExtensions-Transformation in der Liste vor der AWS::Serverless-Transformation stehen.

  • Funktionen und Attribute, die von der AWS::LanguageExtensions-Transformation bereitgestellt werden, werden nur in den Resources-, Conditions- und Outputs-Abschnitten einer Vorlage unterstützt.

Weitere Informationen zur Verwendung von Makros finden Sie unter Eine AWS CloudFormation Makrodefinition erstellen.

Beispiel

Im folgenden Beispiel wird gezeigt, wie Sie die AWS::LanguageExtensions-Transformation und die intrinsische Funktion Fn::Length verwenden, die von der Transformation definiert ist.

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