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 AWS::LanguageExtensions ist ein CloudFormation Makro, das, wenn es in Ihrer Stack-Vorlage referenziert wird, jede intrinsische Funktion, die durch die Transformation definiert wurde, auf ihren aufgelösten Wert innerhalb der Vorlage aktualisiert, wenn Sie einen Stack mithilfe eines Änderungssatzes erstellen oder aktualisieren.
Indem Sie diese Transformation in Ihre CloudFormation Vorlage aufnehmen, können Sie auf zusätzliche Funktionen zugreifen, z. B. auf FunktionenFn::ForEach, die fortgeschrittenere Operationen wie Iterationen ermöglichen. 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 .
Usage
Um die AWS::LanguageExtensions Transformation verwenden zu können, 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
Verwenden Sie die folgende Syntax, um diese Transformation in Ihrer CloudFormation Vorlage zu deklarieren:
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
AWS::LanguageExtensionsTransformation verwendet, empfehlen wir, die Option Vorhandene Vorlage verwenden in der CloudFormation Konsole oder die entsprechende Befehlszeilenoption nicht zu verwenden--use-previous-template. Die TransformationAWS::LanguageExtensionslöst Parameter während der Verarbeitung in Literalwerte auf. Wenn Sie verwenden--use-previous-template, CloudFormation verwendet diese verarbeitete Vorlage mit den alten Literalwerten, wodurch verhindert wird, dass neue Parameterwerte und Systems Manager 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::Lengthstatt!Length. -
Die AWS SAM CLI unterstützt derzeit nicht die
Fn::ForEachintrinsische Funktion derAWS::LanguageExtensionsTransformation. -
Nutzen Sie ein Listenformat, wenn Sie mehrere Transformationen verwenden. Wenn Sie benutzerdefinierte Makros verwenden, platzieren Sie AWS bereitgestellte Transformationen hinter Ihren benutzerdefinierten Makros. Wenn Sie sowohl
AWS::LanguageExtensions- als auchAWS::Serverless-Transformationen verwenden, muss dieAWS::LanguageExtensions-Transformation in der Liste vor derAWS::Serverless-Transformation stehen. -
Funktionen und Attribute, die von der Transformation
AWS::LanguageExtensionsbereitgestellt werden, werden nur in den Abschnitten,ResourcesConditionsundOutputsIhrer 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
Zugehörige Ressourcen
Weitere Beispiele finden Sie in den folgenden Themen.
Allgemeine Informationen zur Verwendung von Makros finden Sie im Benutzerhandbuch unter Durchführen einer benutzerdefinierten Verarbeitung von CloudFormation Vorlagen mit Vorlagenmakros.AWS CloudFormation