AWS::Include-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 CloudFormationBenutzerhandbuch.

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::Include-Transformation

In diesem Thema wird beschrieben, wie Sie die Transformation AWS::Include verwenden können, um Boilerplate-Inhalte in Ihre CloudFormation-Vorlagen einzufügen.

Das Makro AWS::Include ist ein CloudFormation-Makro, das, wenn es in Ihrer Stack-Vorlage referenziert wird, den Inhalt der angegebenen Datei an der Position der Transformation in der Vorlage einfügt, wenn Sie einen Stack mithilfe eines Änderungssatzes erstellen oder aktualisieren. Die AWS::Include-Funktion verhält sich ähnlich wie eine include-, copy- oder import-Anweisung in Programmiersprachen.

Verwendung

Sie können die Transformation AWS::Include überall in der CloudFormation-Vorlage verwenden, außer im Abschnitt Vorlagenparameter oder in der Vorlagenversion. Sie können AWS::Include z. B. im Zuweisungsabschnitt verwenden.

Syntax der obersten Ebene einer Vorlage

Um diese Transformation auf der obersten Ebene Ihrer CloudFormation-Vorlage als Abschnitt Transform zu deklarieren, verwenden Sie die folgende Syntax:

JSON

{ "Transform":{ "Name":"AWS::Include", "Parameters":{ "Location":"s3://amzn-s3-demo-bucket/MyFileName.json" } }, "Resources":{ ... } }

YAML

Transform: Name: AWS::Include Parameters: Location: 's3://amzn-s3-demo-bucket/MyFileName.yaml' Resources: ...

Syntax einer in einen Abschnitt einer Vorlage eingebetteten Transformation

Um diese Transformation in einem Abschnitt Ihrer CloudFormation-Vorlage zu deklarieren, verwenden Sie die intrinsische Funktion Fn::Transform und die folgende Syntax:

JSON

{ "Fn::Transform":{ "Name":"AWS::Include", "Parameters":{ "Location":"s3://amzn-s3-demo-bucket/MyFileName.json" } } }

YAML

Fn::Transform: Name: AWS::Include Parameters: Location: s3://amzn-s3-demo-bucket/MyFileName.yaml

Weitere Informationen finden Sie unter Fn::Transform.

Parameter

Location

Der Standort ist ein Amazon S3-URI mit einem bestimmten Dateinamen in einem S3-Bucket. Beispiel, s3://amzn-s3-demo-bucket/MyFile.yaml.

Überlegungen

Bei der Verwendung von AWS::Include sind die folgenden Punkte zu beachten. Weitere Hinweise zur Verwendung von Makros finden Sie unter Überlegungen zu Makros im AWS CloudFormation Benutzerhandbuch.

  • Wir unterstützen derzeit Amazon S3-URI, aber kein anderes Amazon S3-Format (z. B. Amazon S3 ARN). Es muss sich um einen Amazon S3-Bucket handeln, nicht um ein GitHub-Repository oder Ähnliches.

  • Jeder mit Zugriff auf die Amazon S3-URL kann das Codefragment in seine Vorlage einschließen.

  • Die Vorlagenausschnitte müssen gültiger JSON-Code sein.

  • Ihre Vorlagen-Snippets müssen gültige Schlüssel-Wert-Objekte sein, zum Beispiel "KeyName": "keyValue".

  • Sie können AWS::Include nicht verwenden, um auf einen Vorlagenausschnitt zu verweisen, der ebenfalls AWS::Include verwendet.

  • Wenn Ihre Codeausschnitte geändert werden, übernimmt der Stack nicht automatisch diese Änderungen. Um diese Änderungen zu erhalten, müssen Sie den Stack mit den aktualisierten Codeausschnitten aktualisieren. Wenn Sie Ihren Stack aktualisieren, stellen Sie sicher, dass Ihre eingeschlossenen Codefragmente nicht ohne Ihr Wissen geändert wurden. Um dies vor der Aktualisierung des Stacks sicherzustellen, überprüfen Sie den Änderungssatz.

  • Beim Erstellen von Vorlagen und Codeausschnitten können Sie YAML- und JSON-Vorlagensprachen mischen.

  • Derzeit werden keine Kurznotationen für YAML-Ausschnitte unterstützt.

  • Sie können einen Amazon S3-URI für eine regionsübergreifende Replikation mit bereitstellen AWS::Include. Überprüfen Sie unbedingt die Amazon S3-Bucket-Namen, wenn Sie auf Objekte für regionsübergreifende Replikation zugreifen. Weitere Informationen finden Sie unter Replizieren von Objekten innerhalb und zwischen Regionen im Amazon S3 Benutzerhandbuch.

Beispiele

Die folgenden Beispiele zeigen, wie Sie die Transformation AWS::Include verwenden, um ein Wartebedingungs-Handle auszuführen. Ersetzen Sie amzn-s3-demo-bucket durch Ihren tatsächlichen Bucket-Namen.

Speichern Sie zunächst eine YAML-Datei mit dem Namen single_wait_condition.yaml in Ihrem S3-Bucket mit dem folgenden Inhalt:

MyWaitCondition: Type: AWS::CloudFormation::WaitCondition Properties: Handle: !Ref MyWaitHandle Timeout: '4500'

Sie können diese Datei dann entweder im JSON- oder YAML-Format referenzieren.

JSON

{ "Resources": { "MyWaitHandle": { "Type": "AWS::CloudFormation::WaitConditionHandle" }, "Fn::Transform": { "Name": "AWS::Include", "Parameters": { "Location": "s3://amzn-s3-demo-bucket/single_wait_condition.yaml" } } } }

YAML

Resources: MyWaitHandle: Type: AWS::CloudFormation::WaitConditionHandle Fn::Transform: Name: AWS::Include Parameters: Location: "s3://amzn-s3-demo-bucket/single_wait_condition.yaml"

Weitere Informationen finden Sie unter Erstellen von Wartebedingungen in einer CloudFormation-Vorlage im AWS CloudFormation Benutzerhandbuch.