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 imUpdateStack
-Aufruf. Der Stack wird mit den neuen Parameterwerten aktualisiert. -
YAMLKurzform-Syntax wird in einer Vorlage für systeminterne Funktionen, die nur in der Transformation verfügbar sind, nicht unterstützt.
AWS::LanguageExtensions
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 AWS-bereitgestellten 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
AWS::LanguageExtensions
-Transformation bereitgestellt werden, werden nur in denResources
-,Conditions
- undOutputs
-Abschnitten einer Vorlage unterstützt.
Weitere Informationen zur Verwendung von Makros finden Sie unter Erstellen Sie eine CloudFormation Makrodefinition.
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