View a markdown version of this page

Bereitstellen AWS CloudFormation Schnelleres Stapeln im Expressmodus - AWS CloudFormation

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.

Bereitstellen AWS CloudFormation Schnelleres Stapeln im Expressmodus

Im CloudFormation Expressmodus können Sie Stack-Operationen abschließen, sobald die Ressourcenkonfiguration CloudFormation angewendet wurde, ohne darauf warten zu müssen, dass sich die Ressourcen vollständig stabilisiert haben. Verwenden Sie den Expressmodus, um Stacks in iterativen Entwicklungsworkflows deutlich schneller zu erstellen, zu aktualisieren und zu löschen.

Der Expressmodus funktioniert mit allen vorhandenen CloudFormation Vorlagen. Sie müssen keine Änderungen an der Vorlage vornehmen, um den Expressmodus verwenden zu können.

Wann sollte der Expressmodus verwendet werden

Verwenden Sie den Expressmodus für Entwicklungs- und Iterationsworkflows, bei denen Geschwindigkeit wichtiger ist als das Warten auf eine vollständige Ressourcenstabilisierung. Verwenden Sie den Expressmodus, wenn:

  • Vorlagenänderungen werden während der Entwicklung wiederholt.

  • Sie wünschen sich schnelleres Feedback darüber, ob Ihre Ressourcenkonfigurationen gültig sind.

  • Sie müssen nicht warten, bis die Ressourcen voll funktionsfähig sind, bevor Sie fortfahren.

Verwenden Sie für Produktionsbereitstellungen, bei denen Sie sicherstellen müssen, dass die Ressourcen vollständig stabilisiert und betriebsbereit sind, bevor Sie die Bereitstellung als abgeschlossen betrachten, den Standardbereitstellungsmodus.

So funktioniert der Expressmodus

CloudFormation Wartet im Standardbereitstellungsmodus, bis jede Ressource einen vollständig stabilisierten Zustand erreicht hat, bevor die Ressource als abgeschlossen gemeldet wird. Warten Sie beispielsweise beim Erstellen einer Amazon EC2 EC2-Instance, bis CloudFormation sich die Instance im running Status befindet.

Im Expressmodus wird ein Ressourcenvorgang in der CloudFormation Regel als abgeschlossen betrachtet, sobald der API-Aufruf zum Erstellen, Aktualisieren oder Löschen der Ressource erfolgreich war. Wartet in den meisten Fällen CloudFormation nicht, bis die Ressource ihren endgültigen Betriebszustand erreicht hat.

Das bedeutet, dass nach Abschluss eines Stack-Vorgangs im Expressmodus:

  • Ressourcen initialisieren oder verbreiten möglicherweise immer noch Änderungen.

  • Ressourcen sind möglicherweise noch nicht bereit, Datenverkehr zu verarbeiten oder Verbindungen anzunehmen.

  • Möglicherweise sind noch Löschvorgänge im Gange.

Wie CloudFormation geht man mit Abhängigkeiten im Expressmodus um

Der Expressmodus respektiert die in Ihrer Vorlage definierten Ressourcenabhängigkeiten. Wenn eine Ressource auf die ID oder das Attribut einer anderen Ressource verweist (über Ref oderFn::GetAtt), wird überprüft, CloudFormation ob die Konfiguration der referenzierten Ressource angewendet wurde, bevor die abhängige Ressource gestartet wird. Wenn bei einer abhängigen Ressource ein vorübergehender Ausfall auftritt, weil eine referenzierte Ressource nicht bereit ist, wird der CloudFormation Vorgang erneut versucht.

Ressourcen, die keine Abhängigkeiten voneinander haben, können parallel ablaufen.

Der Expressmodus ändert nichts an der Reihenfolge der Abhängigkeiten Ihrer Ressourcen. Sie ändert sich, wenn der Stackvorgang als abgeschlossen gemeldet wird.

Erste Schritte mit dem Expressmodus

Sie können den Expressmodus mit den Sets AWS Command Line Interface (AWS CLI), AWS Cloud Development Kit (AWS CDK) (AWS CDK), der CloudFormation Konsole und den Änderungssätzen verwenden. In den folgenden Abschnitten wird beschrieben, wie der Expressmodus mit jeder Methode aktiviert wird.

Verwenden des Expressmodus mit dem AWS CLI

Um den Expressmodus mit dem zu verwenden AWS CLI, fügen Sie den --deployment-config Parameter zu Ihren Stack-Operationsbefehlen hinzu.

Erstellen Sie einen Stapel im Expressmodus

Der folgende Befehl erstellt einen Stapel im Expressmodus:

aws cloudformation create-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'
Aktualisieren Sie einen Stack im Expressmodus

Der folgende Befehl aktualisiert einen Stack im Expressmodus:

aws cloudformation update-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'
Löscht einen Stapel im Expressmodus

Der folgende Befehl löscht einen Stapel im Expressmodus:

aws cloudformation delete-stack --stack-name my-stack \ --deployment-config '{"mode": "EXPRESS"}'

Verwenden Sie den Expressmodus mit dem AWS CDK

Um den Expressmodus mit dem AWS Cloud Development Kit (AWS CDK) (AWS CDK) zu verwenden, verwenden Sie das --express Flag mit dem cdk deploy folgenden Befehl:

cdk deploy --express

Verwenden Sie den Expressmodus mit AWS SAM

Um den Expressmodus mit der AWS SAM-CLI zu verwenden, fügen Sie das --express Flag zu Ihren Deploy- oder Sync-Befehlen hinzu:

sam deploy --express
sam sync --express

Um die Einstellung in Ihrer Projektkonfiguration beizubehalten, verwenden Sie--save-params:

sam deploy --express --save-params

Dies wird express = true in Ihrer samconfig.toml Datei gespeichert, sodass nachfolgende Bereitstellungen automatisch den Expressmodus verwenden.

Wenn der Expressmodus aktiviert ist, übergibt die AWS SAM CLI die Bereitstellungskonfiguration an CloudFormation. Das --disable-rollback Flag steuert das Rollback-Verhalten innerhalb der Bereitstellungskonfiguration.

Verwenden Sie den Expressmodus mit der Konsole

Wenn Sie einen Stack in der CloudFormation Konsole erstellen oder aktualisieren, können Sie den Expressmodus im Schritt Stack-Optionen konfigurieren aktivieren. Wählen Sie unter Bereitstellungsoptionen die Option Express als Bereitstellungsmodus aus.

Verwenden Sie den Expressmodus mit Änderungssätzen

Sie können den Expressmodus mit Änderungssätzen verwenden, indem Sie bei der Erstellung des Änderungssatzes die Bereitstellungskonfiguration angeben:

aws cloudformation create-change-set --stack-name my-stack \ --change-set-name my-change-set \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS"}'

CloudFormation Wendet bei der Ausführung des Änderungssatzes die Bereitstellungskonfiguration im Expressmodus an, die bei der Erstellung des Änderungssatzes angegeben wurde.

Rollback-Verhalten im Expressmodus

Wenn Sie den Expressmodus verwenden, ist der Rollback standardmäßig CloudFormation deaktiviert. Wenn ein Ressourcenvorgang fehlschlägt, werden CloudFormation die Änderungen nicht automatisch rückgängig gemacht.

Um das Rollback im Expressmodus wieder disableRollback zu aktivieren, stellen Sie false im Parameter Folgendes ein: --deployment-config

aws cloudformation create-stack --stack-name my-stack \ --template-body file://my-template.yaml \ --deployment-config '{"mode": "EXPRESS", "disableRollback": false}'

Express-Modus und verschachtelte Stacks

Wenn Sie den Expressmodus für einen übergeordneten Stapel verwenden, wird die Einstellung auf alle verschachtelten Stapel in der Hierarchie übertragen. Sie müssen den Expressmodus nicht für jeden verschachtelten Stapel separat angeben. Alle Ressourcen im Root-Stack und seinen verschachtelten Stacks sind abgeschlossen, sobald ihre Konfiguration angewendet wird.

Überlegungen zur Verfügbarkeit von Ressourcen

Im Expressmodus werden Ressourcenoperationen abgeschlossen, bevor die Ressourcen einen vollständig stabilisierten Zustand erreicht haben. Daher kann es sein, dass jede Ressource zusätzliche Zeit benötigt, bis sie vollständig für den Verkehr oder die Verteilung in mehreren Regionen bereit ist. In der folgenden Tabelle wird anhand von Beispielen für verschiedene Ressourcentypen veranschaulicht, welche Arten von Ressourcenverhalten Sie erwarten können. Diese Beispiele dienen der Veranschaulichung und stellen keine vollständige Liste der unterstützten Ressourcen dar.

Ressourcentyp Operation Bereitschaftsverhalten
CloudFront Amazon-Vertrieb Create/Update Die globale Bereitstellung der Verteilung kann mehrere Minuten dauern, nachdem die Konfiguration angewendet wurde.
Amazon EC2-Instance Create Die Instanz wird möglicherweise immer noch initialisiert (Benutzerdatenskripts werden ausgeführt, Statusprüfungen ausgeführt), nachdem der Stack-Vorgang abgeschlossen ist.
AWS Lambda-Funktion Delete Die Funktionsressourcen werden möglicherweise immer noch bereinigt, nachdem die Berichte über den Löschvorgang abgeschlossen sind.
Dienst Amazon Elastic Container Service (Amazon ECS) Create/Update Serviceaufgaben werden möglicherweise immer noch gestartet oder erreichen nach Abschluss des Stack-Vorgangs einen stabilen Status.

Nicht unterstützte Funktionen und Einschränkungen

Die folgenden Funktionen und Dienste werden im Expressmodus nicht unterstützt:

CloudFormation StackSets

CloudFormation unterstützt den Expressmodus mit StackSets Vorgängen nicht.

Die folgenden Ressourcen weisen ein spezifisches Verhalten im Expressmodus auf:

Benutzerdefinierte Ressourcen

Benutzerdefinierte Ressourcen (einschließlich Custom::* Ressourcen AWS::CloudFormation::CustomResource und) folgen ihrem Standardverhalten. CloudFormation wartet darauf, dass die benutzerdefinierte Ressource ein Antwortsignal sendet, bevor der Vorgang als abgeschlossen betrachtet wird, auch im Expressmodus. Um zu verhindern, dass eine langsame oder festgefahrene benutzerdefinierte Ressource schnelle Iterationsworkflows verzögert, legen Sie mit der Eigenschaft eine maximale Wartezeit fest. ServiceTimeout Weitere Informationen finden Sie unter Zeitüberschreitung bei der Antwort.

Vergleich mit AWS CDK Hotswap-Bereitstellungen

In der folgenden Tabelle werden der Expressmodus mit AWS CDK Hotswap-Bereitstellungen verglichen.

Feature Express-Modus AWS CDK Hotswap
Bereitstellungsmechanismus Wird CloudFormation für alle Ressourcenoperationen verwendet Umgeht Dienst-APIs CloudFormation und ruft sie direkt auf
Kompatibilität mit Vorlagen Funktioniert mit allen vorhandenen CloudFormation Vorlagen Unterstützt eine begrenzte Anzahl von Ressourcentypen
Status des Stapels Der Stack-Status bleibt mit der Vorlage konsistent Der Stack-Status kann von der Vorlage abweichen
Rollback-Unterstützung Unterstützt Rollback (standardmäßig deaktiviert) Keine Rollback-Unterstützung
Abdeckung der Ressourcen Alle CloudFormation Ressourcentypen Eingeschränkte Ressourcentypen (AWS Lambda, Amazon ECS, AWS Step Functions und andere)
Empfohlene Verwendung Entwicklungs- und Iterationsworkflows Nur Entwicklungsworkflows mit unterstützten Ressourcen