Aufbau einer Vorlage - AWS CloudFormation

Aufbau einer Vorlage

Eine Vorlage ist eine in JSON oder YAML formatierte Textdatei, die Ihre AWS-Infrastruktur beschreibt. Die folgenden Beispiele veranschaulichen die Struktur einer AWS CloudFormation-Vorlage mit ihren unterschiedlichen Abschnitten.

JSON

Das folgende Beispiel zeigt ein in JSON formatiertes Vorlagenfragment.

{ "AWSTemplateFormatVersion" : "version date", "Description" : "JSON string", "Metadata" : { template metadata }, "Parameters" : { set of parameters }, "Rules" : { set of rules }, "Mappings" : { set of mappings }, "Conditions" : { set of conditions }, "Transform" : { set of transforms }, "Resources" : { set of resources }, "Outputs" : { set of outputs } }

YAML

Das folgende Beispiel zeigt ein in YAML formatiertes Vorlagenfragment.

--- AWSTemplateFormatVersion: "version date" Description: String Metadata: template metadata Parameters: set of parameters Rules: set of rules Mappings: set of mappings Conditions: set of conditions Transform: set of transforms Resources: set of resources Outputs: set of outputs

Abschnitte einer Vorlage

Vorlagen sind in mehrere Hauptabschnitte gegliedert. Der Abschnitt Resources ist der einzige erforderliche Abschnitt. Einige Vorlagenabschnitte dürfen in beliebiger Reihenfolge deklariert werden. Da Werte in einem Abschnitt jedoch möglicherweise Werte aus einem vorherigen Abschnitt referenzieren, kann es hilfreich sein, bei der Vorlagenerstellung gemäß der logischen Reihenfolge in der unten vorgestellten Liste vorzugehen.

FormatVersion (optional)

Die AWS CloudFormation-Vorlagenversion, die der Vorlage zugrunde liegt. Die Vorlagenformatversion ist nicht mit der API-Version oder der WSDL-Version identisch. Die Vorlagenformatversion kann sich unabhängig von der API-Version und der WSDL-Version ändern.

Description (optional)

Gibt eine Textzeichenfolge als Beschreibung der Vorlage an. Dieser Abschnitt muss immer auf den Abschnitt folgen, der die Vorlagenformatversion festlegt.

Metadata (optional)

Gibt Objekte an, die zusätzliche Informationen über die Vorlage liefern.

Parameters (optional)

Werte, die zur Laufzeit an die Vorlage übergeben werden sollen (also bei der Erstellung oder Aktualisierung eines Stacks). Hier können Sie Parameter aus den Vorlagenabschnitten Resources und Outputs referenzieren.

Regeln (optional)

Validiert einen Parameter oder eine Kombination von Parametern, die während einer Stack-Erstellung oder Stack-Aktualisierung an eine Vorlage übergeben werden.

Mappings (optional)

Eine Sammlung von Zuweisungen ähnlich einer Lookup-Tabelle, die Schlüssel und die ihnen zugeordneten Werte enthält. Mit ihrer Hilfe lassen sich Werte für bedingte Parameter festlegen. Sie können die intrinsische Funktion Fn::FindInMap im Abschnitt Resources und im Abschnitt Outputs verwenden, um einem Schlüssel den zugehörigen Wert zuzuordnen.

Conditions (optional)

Bedingungen, die steuern, ob während der Erstellung oder Aktualisierung eines Stacks bestimmte Ressourcen erstellt werden oder ein Wert für bestimmte Ressourceneigenschaften festgelegt wird. Beispielsweise könnten Sie über Bedingungen festlegen, wie eine Ressource erstellt wird, wenn der Stack für eine Produktionsumgebung gedacht ist, und wie sie erstellt wird, wenn der Stack für eine Testumgebung gedacht ist.

Transform (optional)

Gibt an, welche Version des AWS Serverless Application Model (AWS SAM) für eine serverlose Anwendung (Lambda-basierte Anwendung) verwendet werden soll. Wenn Sie eine Transformation angeben, können Sie die AWS SAM-Syntax zur Deklaration von Ressourcen in Ihrer Vorlage verwenden. Das Modell definiert, welche Syntax verwendet werden darf und wie diese Syntax verarbeitet wird.

Über AWS::Include-Transformationen können Sie außerdem mit Codevorlagen arbeiten, die separat von der AWS CloudFormation-Hauptvorlage gespeichert sind. In diesem Fall können Sie die Dateien mit den Codeausschnitten in einem Amazon S3-Bucket speichern und die Funktionen in verschiedenen Vorlagen wiederverwenden.

Resources (erforderlich)

Gibt die Stack-Ressourcen (zum Beispiel eine Amazon Elastic Compute Cloud-Instance oder einen Amazon Simple Storage Service-Bucket) und deren Eigenschaften an. Hier können Sie Ressourcen aus den Vorlagenabschnitten Resources und Outputs referenzieren.

Outputs (optional)

Beschreibt die Werte, die zurückgegeben werden, wenn Sie die Eigenschaften Ihres Stacks abrufen. Beispielsweise können Sie eine Ausgabe für den Namen eines S3-Buckets deklarieren und diesen Namen anschließend über den aws cloudformation describe-stacks-CLI-Befehl AWS CLI abrufen.