Arbeiten mit CloudFormation-Vorlagen
Eine AWS CloudFormation-Vorlage definiert die AWS-Ressourcen, die Sie als Teil eines Stapels erstellen, aktualisieren oder löschen möchten. Sie besteht aus mehreren Abschnitten, aber der einzige erforderliche Abschnitt ist der Abschnitt Resources, in dem mindestens eine Ressource deklariert werden muss.
Sie können Vorlagen mit den folgenden Methoden erstellen:
-
AWS-Infrastruktur-Composer- Eine visuelle Schnittstelle für die Gestaltung von Vorlagen.
-
Text Editor- Schreiben Sie Vorlagen direkt in JSON- oder YAML-Syntax.
-
IaC-Generator- Generieren Sie Vorlagen aus Ressourcen, die in Ihrem Konto bereitgestellt wurden und derzeit nicht von CloudFormation verwaltet werden. Der IaC-Generator arbeitet mit einer breiten Palette von Ressourcentypen, die von der Cloud Control API in Ihrer Region unterstützt werden.
In diesem Abschnitt finden Sie eine umfassende Anleitung zur Verwendung der verschiedenen Abschnitte einer CloudFormation-Vorlage und wie Sie mit der Erstellung von Stack-Vorlagen beginnen. Es werden folgende Themen behandelt:
Themen
Wo Vorlagen gespeichert werden
Amazon-S3-Bucket
Sie können CloudFormation-Vorlagen in einem Amazon S3-Bucket speichern. Wenn Sie einen Stapel erstellen oder aktualisieren, können Sie die S3-URL der Vorlage angeben, anstatt sie direkt hochzuladen.
Wenn Sie Vorlagen direkt über AWS-Managementkonsole oder AWS CLIhochladen, wird automatisch ein S3-Bucket für Sie erstellt. Weitere Informationen finden Sie unter Erstellen Sie einen Stack über die CloudFormation-Konsole.
Git-Repository
Mit Git synckönnen Sie Vorlagen in einem Git-Repository speichern. Wenn Sie einen Stack erstellen oder aktualisieren, können Sie den Speicherort des Git-Repository und den Zweig angeben, der die Vorlage enthält, anstatt sie direkt hochzuladen oder auf eine S3-URL zu verweisen. CloudFormation überwacht automatisch das angegebene Repository und den Zweig auf Änderungen an der Vorlage. Weitere Informationen finden Sie unter Erstellen Sie einen Stack aus dem Repository-Quellcode mit Git-Synchronisierung.
Vorlagen validieren
Überprüfung der Syntax
Sie können die JSON- oder YAML-Syntax Ihrer Vorlage überprüfen, indem Sie den CLI-Befehl validate-template verwenden oder Ihre Vorlage in der Konsole angeben. Die Konsole führt die Validierung automatisch durch. Weitere Informationen finden Sie unter Erstellen Sie einen Stack über die CloudFormation-Konsole.
Diese Methoden überprüfen jedoch nur die Syntax Ihrer Vorlage und nicht die Eigenschaftswerte, die Sie für eine Ressource angegeben haben.
Zusätzliche Validierungswerkzeuge
Für komplexere Validierungen und Best-Practice-Prüfungen können Sie zusätzliche Tools verwenden, z. B:
-
CloudFormation Linter (cfn-lint)
- Validieren Sie Vorlagen anhand der CloudFormation-Ressourcenanbieter-Schemata. Umfasst die Überprüfung gültiger Werte für Ressourceneigenschaften und bewährte Verfahren. -
CloudFormation Rain (rain fmt)
- Formatieren Sie Ihre CloudFormation-Vorlagen nach einem einheitlichen Standard oder formatieren Sie eine Vorlage von JSON zu YAML (oder YAML zu JSON) um. Bei der Verwendung von YAML werden Kommentare beibehalten und die Verwendung von intrinsischen Funktionen wird nach Möglichkeit auf die kurze Syntax umgestellt.
Erste Schritte mit Vorlagen
Um mit der Erstellung einer CloudFormation-Vorlage zu beginnen, folgen Sie diesen Schritten:
-
Ressourcen auswählen- Bestimmen Sie die AWS Ressourcen, die Sie in Ihren Stack aufnehmen möchten, wie EC2-Instances, VPCs, Sicherheitsgruppen und mehr.
-
Schreiben Sie die Vorlage- Schreiben Sie die Vorlage im JSON- oder YAML-Format und definieren Sie die Ressourcen und ihre Eigenschaften.
-
Speichern Sie die Vorlage- Speichern Sie die Vorlage lokal mit einer Dateierweiterung wie,
.json.yamloder.txt. -
Validieren Sie die Vorlage- Validieren Sie die Vorlage mit den im Abschnitt Vorlagen validieren beschriebenen Methoden.
-
Einen Stapel erstellen- Erstellen Sie einen Stapel unter Verwendung der validierten Vorlage.
Planen Sie die Verwendung der CloudFormation-Vorlagenreferenz
Wenn Sie Ihre Vorlagen schreiben, finden Sie die Dokumentation für die detaillierte Syntax für die verschiedenen Ressourcentypen in der AWS Ressourcen- und Eigenschaftstypen-Referenz.
Häufig benötigen Ihre Stack-Vorlagen intrinsische Funktionen, um Eigenschaftswerte zuzuweisen, die erst zur Laufzeit verfügbar sind, sowie spezielle Attribute, um das Verhalten von Ressourcen zu steuern. Wenn Sie Ihre Vorlage schreiben, können Sie sich an den folgenden Ressourcen orientieren:
-
Referenz auf eine intrinsische Funktion- Einige häufig verwendete intrinsische Funktionen sind:
-
Ref- Ruft den Wert eines Parameters oder die physische ID einer Ressource ab. -
Sub- Ersetzt Platzhalter in Zeichenketten durch tatsächliche Werte. -
GetAtt- Gibt den Wert eines Attributs aus einer Ressource in der Vorlage zurück. -
Join- Verbindet eine Reihe von Werten zu einer einzigen Zeichenkette.
-
-
Ressourcenattribut-Referenz- Einige häufig verwendete spezielle Attribute sind:
-
DependsOn- Verwenden Sie dieses Attribut, um anzugeben, dass eine Ressource nach einer anderen erstellt werden muss. -
DeletionPolicy- Verwenden Sie dieses Attribut, um festzulegen, wie CloudFormation die Löschung einer Ressource behandeln soll.
-
Beispielvorlagen
CloudFormation bietet Open-Source-Stack-Vorlagen, die Sie für den Einstieg verwenden können. Weitere Informationen finden Sie unter CloudFormation Beispielvorlagen
Beachten Sie, dass diese Vorlagen nicht für die Produktion geeignet sind. Sie sollten sich die Zeit nehmen, um zu lernen, wie sie funktionieren, sie an Ihre Bedürfnisse anzupassen und sicherzustellen, dass sie den Compliance-Standards Ihres Unternehmens entsprechen.
Jede Vorlage in diesem Repository durchläuft CloudFormation Linter