AWS::LanguageExtensions-Transformation - AWS CloudFormation

Dies ist das neue CloudFormation Template Reference Guide. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im AWS CloudFormation Benutzerhandbuch.

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

In diesem Thema wird beschrieben, wie Sie die Transformation AWS::LanguageExtensions verwenden, um zusätzliche Funktionen und Möglichkeiten zu aktivieren, die standardmäßig nicht verfügbar sind.

Das Makro AWS::LanguageExtensions ist ein CloudFormation-Makro, das, wenn es in Ihrer Stack-Vorlage referenziert wird, jede durch die Transformation definierte intrinsische Funktion auf ihren aufgelösten Wert innerhalb der Vorlage aktualisiert, wenn Sie einen Stack mithilfe eines Änderungssatzes erstellen oder aktualisieren.

Wenn Sie diese Transformation in Ihre CloudFormation-Vorlage aufnehmen, können Sie auf zusätzliche Features zugreifen, wie beispielsweise Fn::ForEach, die erweiterte Operationen wie Iteration ermöglicht. Sie können intrinsische Funktionen auch an Stellen verwenden, an denen sie normalerweise nicht erlaubt sind, wie beispielsweise in den Funktionen Ref und Fn::GetAtt .

Verwendung

Um die Transformation AWS::LanguageExtensions zu verwenden, müssen Sie sie auf der obersten Ebene Ihrer CloudFormation-Vorlage deklarieren. Sie können AWS::LanguageExtensions nicht als Transformation verwenden, die in einem anderen Vorlagenabschnitt eingebettet ist.

Die Deklaration muss die Zeichenkette AWS::LanguageExtensions als Wert verwenden. Parameter oder Funktionen dürfen nicht zur Angabe eines Transformationswerts verwendet werden.

Syntax

Um diese Transformation in Ihrer CloudFormation-Vorlage zu deklarieren, verwenden Sie die folgende Syntax:

JSON

{ "Transform":"AWS::LanguageExtensions", "Resources":{ ... } }

YAML

Transform: AWS::LanguageExtensions Resources: ...

Die Transformation AWS::LanguageExtensions ist eine eigenständige Deklaration ohne zusätzliche Parameter.

Unterstützung für zusätzliche Funktionen

Die Transformation AWS::LanguageExtensions unterstützt die folgenden zusätzlichen Funktionen:

Überlegungen

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

  • Wenn Sie einen Stack aktualisieren, der die Transformation AWS::LanguageExtensions verwendet, empfehlen wir Ihnen, die Option Vorhandene Vorlage verwenden in der CloudFormation-Konsole oder die entsprechende Befehlszeilenoption --use-previous-templatenicht zu verwenden. Die Transformation AWS::LanguageExtensions löst Parameter während der Verarbeitung in Literalwerte auf. Wenn Sie --use-previous-templateverwenden, verwendet CloudFormation diese verarbeitete Vorlage mit den alten literalen Werten und verhindert so, dass neue Parameterwerte und Systems Manager-Parameteraktualisierungen angewendet werden. Geben Sie stattdessen die ursprüngliche Vorlage an, um sicherzustellen, dass die Parameter mit den aktuellen Werten neu aufgelöst werden.

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

  • Die CLI AWS SAM unterstützt derzeit nicht die Funktion Fn::ForEach, die der Transformation AWS::LanguageExtensions innewohnt.

  • Nutzen Sie ein Listenformat, wenn Sie mehrere Transformationen verwenden. Wenn Sie benutzerdefinierte Makros verwenden, platzieren Sie von AWS bereitgestellte Transformationen nach 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 Transformation AWS::LanguageExtensions bereitgestellt werden, werden nur in den Abschnitten,Resources Conditionsund Outputs Ihrer Vorlage unterstützt.

Beispiele

Die folgenden Beispiele zeigen, wie Sie die Transformation AWS::LanguageExtensions verwenden, um die durch die Transformation definierte intrinsische Funktion Fn::Length zu verwenden.

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

Weitere Beispiele finden Sie in den folgenden Themen.

Allgemeine Informationen zur Verwendung von Makros finden Sie unter Benutzerdefinierte Verarbeitung von CloudFormation-Vorlagen mit Vorlagenmakros im AWS CloudFormation Benutzerhandbuch.