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.
In diesem Thema wird beschrieben, wie Sie die AWS::Include
Transformation verwenden, um Standardinhalte in Ihre Vorlagen einzufügen. CloudFormation
Dabei AWS::Include
handelt es sich um ein CloudFormation Makro, das, wenn es in Ihrer Stapelvorlage referenziert wird, den Inhalt der angegebenen Datei an der Position der Transformation in der Vorlage einfügt, wenn Sie einen Stapel 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 AWS::Include
Transformation überall in der CloudFormation Vorlage verwenden, außer im Abschnitt mit den Vorlagenparametern 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 Transform
Abschnitt, 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 Fn::Transform
systeminterne Funktion 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 Überlegungen zur Verwendung von Makros finden Sie unter Überlegungen zu Makros im Benutzerhandbuch.AWS CloudFormation
-
Wir unterstützen derzeit Amazon S3-URI, aber kein anderes Amazon S3-Format (z. B. Amazon S3 ARN). Es muss ein Amazon S3 S3-Bucket sein, im Gegensatz zu so etwas wie einem GitHub Repository.
-
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.
-
Bei Ihren Vorlagenausschnitten muss es sich um gültige Schlüsselwertobjekte handeln, zum Beispiel.
"KeyName": "keyValue"
-
Sie können
AWS::Include
nicht verwenden, um auf einen Vorlagenausschnitt zu verweisen, der ebenfallsAWS::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
AWS::Include
bereitstellen. Überprüfen Sie unbedingt die Amazon S3-Bucket-Namen, wenn Sie auf Objekte für regionsübergreifende Replikation zugreifen. Weitere Informationen finden Sie unter Objekte innerhalb und zwischen Regionen replizieren im Amazon S3 S3-Benutzerhandbuch.
Beispiele
Die folgenden Beispiele zeigen, wie die AWS::Include
Transformation verwendet wird, um ein Wartebedingungs-Handle auszuführen. Ersetzen Sie amzn-s3-demo-bucket
durch den tatsächlichen Namen Ihres Buckets.
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 dann entweder im JSON- oder im YAML-Format auf diese Datei verweisen.
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 im AWS CloudFormation Benutzerhandbuch unter Erstellen von Wartebedingungen in einer CloudFormation Vorlage.