Wählen Sie aus, wie mit Ausfällen bei der Bereitstellung von Ressourcen umgegangen werden soll - 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.

Wählen Sie aus, wie mit Ausfällen bei der Bereitstellung von Ressourcen umgegangen werden soll

Wenn Ihr Stack-Vorgang fehlschlägt, müssen Sie Ressourcen, die bereits erfolgreich bereitgestellt wurden, nicht rückgängig machen und jedes Mal von vorne beginnen. Stattdessen können Sie Probleme mit dem UPDATE_FAILED Status CREATE_FAILED oder beheben und die Bereitstellung dann an dem Punkt fortsetzen, an dem das Problem aufgetreten ist.

Dazu müssen Sie die Option Erfolgreich bereitgestellte Ressourcen beibehalten aktivieren. Diese Option ist für alle Stack-Bereitstellungen und Change-Set-Operationen verfügbar.

  • Wenn Sie bei der Stack-Erstellung die Option Erfolgreich bereitgestellte Ressourcen beibehalten wählen, CloudFormation wird der Status der erfolgreich erstellten Ressourcen beibehalten und die fehlgeschlagenen Ressourcen so belassen, bis der nächste Aktualisierungsvorgang ausgeführt wird.

  • Wenn Sie bei Aktualisierungs- und Änderungssatzvorgängen die Option Erfolgreich bereitgestellte Ressourcen beibehalten wählen, wird der Status erfolgreicher Ressourcen beibehalten, während ausgefallene Ressourcen auf ihren letzten bekannten stabilen Zustand zurückgesetzt werden. Fehlgeschlagene Ressourcen befinden sich in einem UPDATE_FAILED-Status. Ressourcen ohne letzten bekannten stabilen Zustand werden beim nächsten Stack-Vorgang gelöscht.

Überblick über Optionen für Stack-Ausfälle

Bevor Sie einen Vorgang über die CloudFormation Konsole ausführen API AWS CLI, oder geben Sie das Verhalten bei einem Ausfall bereitgestellter Ressourcen an. Fahren Sie dann mit dem Bereitstellungsprozess Ihrer Ressourcen fort, ohne weitere Änderungen vorzunehmen. Im Falle eines Betriebsausfalls CloudFormation stoppt es beim ersten Fehler in jedem unabhängigen Bereitstellungspfad. CloudFormation identifiziert Abhängigkeiten zwischen Ressourcen, um unabhängige Bereitstellungsaktionen zu parallelisieren. Anschließend werden Ressourcen auf jedem unabhängigen Bereitstellungspfad bereitgestellt, bis ein Fehler auftritt. Ein Fehler in einem Pfad hat keine Auswirkungen auf andere Bereitstellungspfade. CloudFormation setzt die Bereitstellung der Ressourcen bis zum Abschluss fort oder stoppt bei einem anderen Fehler.

Beheben Sie alle Probleme, um den Bereitstellungsprozess fortzusetzen. CloudFormation führt die erforderlichen Aktualisierungen durch, bevor erneut versucht wird, Provisionierungsaktionen für Ressourcen durchzuführen, die zuvor nicht erfolgreich bereitgestellt werden konnten. Sie beheben Probleme, indem Sie Retry-, Update- oder Rollback-Vorgänge einsenden. Wenn Sie beispielsweise eine EC2 Amazon-Instance bereitstellen und die EC2 Instance während eines Erstellungsvorgangs fehlschlägt, sollten Sie den Fehler untersuchen, anstatt die ausgefallene Ressource sofort rückgängig zu machen. Sie können System-Statusprüfungen und Instance-Statusprüfungen überprüfen und dann den Retry-Vorgang auswählen, sobald die Probleme gelöst sind.

Wenn ein Stack-Vorgang fehlschlägt und Sie Preserve successfully provisioned resources (Erfolgreich bereitgestellte Ressourcen beibehalten) aus dem Stack failure options (Stack-Fehleroptionen)-Menü angegeben haben, können Sie die folgenden Optionen auswählen.

  • Retry – Versuchte den Bereitstellungsvorgang für ausgefallene Ressourcen erneut und setzt die Bereitstellung der Vorlage fort, bis der Stack-Vorgang erfolgreich abgeschlossen ist oder der nächste Fehler auftritt. Wählen Sie diese Option, wenn die Ressource aufgrund eines Problems, für das keine Änderungen an der Vorlage erforderlich sind, nicht bereitgestellt werden konnte, z. B. eine AWS Identity and Access Management (IAM) -Berechtigung.

  • Update – Ressourcen, die bereitgestellt wurden, werden bei Vorlagen-Aktualisierungen aktualisiert. Ressourcen, die nicht erstellt oder aktualisiert wurden, werden erneut versucht. Wählen Sie diese Option, wenn die Ressource aufgrund von Vorlagenfehlern nicht bereitgestellt werden konnte und Sie die Vorlage geändert haben. Wenn Sie einen Stack aktualisieren, der sich in einem FAILED-Status befindet, müssen Sie unter Stack failure options (Stack-Fehleroptionen) Preserve successfully provisioned resources (Erfolgreich bereitgestellte Ressourcen beibehalten) auswählen, um mit der Aktualisierung Ihres Stacks fortzufahren.

  • Rollback — CloudFormation Setzt den Stack auf den letzten bekannten stabilen Zustand zurück.

Erforderliche Bedingungen für das Anhalten des Stack-Rollbacks

Um zu CloudFormation verhindern, dass die erfolgreich erstellten Ressourcen automatisch zurückgesetzt und gelöscht werden, müssen die folgenden Bedingungen erfüllt sein.

  1. Wenn Sie den Stack erstellen oder aktualisieren, müssen Sie die Option Erfolgreich bereitgestellte Ressourcen beibehalten auswählen. Dies weist darauf hin, dass die erfolgreich erstellten Ressourcen CloudFormation nicht gelöscht werden sollen, auch wenn der gesamte Stack-Vorgang fehlschlägt.

  2. Der Stack-Vorgang muss fehlgeschlagen sein, was bedeutet, dass der Stack-Status entweder CREATE_FAILED oder lautetUPDATE_FAILED.

Anmerkung

Unveränderliche Update-Typen werden nicht unterstützt.

Erfolgreich bereitgestellte Ressourcen beibehalten (Konsole)

Create stack
So können Sie erfolgreich bereitgestellte Ressourcen während eines Stack-Erstellungsvorgangs beibehalten
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie Create stack (Stack erstellen) und dann With new resources (standard) (Mit neuen Ressourcen (Standard)).

  3. Wählen Sie auf der Seite Specify Template (Vorlage angeben) mithilfe einer der folgenden Optionen eine Stack-Vorlage aus:

    • Vorlage ist bereit

    • Verwenden einer Beispielvorlage

    • Mit Infrastructure Composer erstellen

    Übernehmen Sie Ihre Einstellungen und wählen Sie Next (Weiter).

  4. Geben Sie auf der Seite Specify stack details (Stack-Details angeben) einen Stack-Namen in das Feld Stack name ein.

  5. Geben Sie im Abschnitt Parameter die Parameter an, die in Ihrer Stack-Vorlage definiert sind.

    Sie können beliebige Parameter mit Standardwerten verwenden oder ändern.

  6. Wenn Sie mit den Parameterwerten zufrieden sind, wählen Sie Next (Weiter).

  7. Auf der Seite Configure stack options (Stack-Optionen konfigurieren) können Sie zusätzliche Optionen für Ihren Stack einrichten.

  8. Für Stack failure options (Stack-Fehleroptionen), wählen Sie Preserve successfully provisioned resources (Erfolgreich bereitgestellte Ressourcen beibehalten).

  9. Wenn Sie mit den Stack-Optionen zufrieden sind, wählen Sie Next (Weiter).

  10. Überprüfen Sie Ihren Stack auf der Seite Review (Überprüfen) und wählen Sie Create stack (Stack erstellen).

Ergebnisse: Ressourcen, die nicht erstellt werden konnten, übertragen den Stack-Status auf CREATE_FAILED, um zu verhindern, dass der Stack zurückgesetzt wird, wenn der Stack-Vorgang auf einen Fehler trifft. Ressourcen, die erfolgreich bereitgestellt wurden, befinden sich in einem CREATE_COMPLETE-Status. Sie können den Stack auf der Registerkarte Stack events (Stack-Ereignisse) überwachen.

Update stack
Beibehaltung erfolgreich bereitgestellter Ressourcen während eines Stack-Aktualisierungsvorgangs.
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie den Stack aus, den Sie aktualisieren möchten, und anschließend Update (Aktualisieren).

  3. Wählen Sie auf der Seite Update stack (Stack aktualisieren) mit einer der folgenden Optionen eine Stack-Vorlage aus:

    • Use current template (Aktuelle Vorlage verwenden)

    • Replace current template (Aktuelle Vorlage ersetzen)

    • Vorlage in Infrastructure Composer bearbeiten

    Übernehmen Sie Ihre Einstellungen und wählen Sie Next (Weiter).

  4. Auf der Seite Specify stack details (Stack-Details angeben), legen Sie die Parameter fest, die in Ihrer Stack-Vorlage definiert sind.

    Sie können beliebige Parameter mit Standardwerten verwenden oder ändern.

  5. Wenn Sie mit den Parameterwerten zufrieden sind, wählen Sie Next (Weiter).

  6. Auf der Seite Configure stack options (Stack-Optionen konfigurieren) können Sie zusätzliche Optionen für Ihren Stack einrichten.

  7. Wählen Sie für Behaviour on provisioning failure (Verhalten bei Bereitstellungsausfall) Preserve successfully provisioned resources (Erfolgreich bereitgestellte Ressourcen beibehalten).

  8. Wenn Sie mit den Stack-Optionen zufrieden sind, wählen Sie Next (Weiter).

  9. Überprüfen Sie Stack auf der Seite Review (Überprüfen) und wählen Sie Update stack (Stack aktualisieren).

Ergebnisse: Ressourcen, die nicht aktualisiert werden konnten, übertragen den Stack-Status auf UPDATE_FAILED und setzen Sie auf den letzten bekannten stabilen Zustand zurück. Ressourcen ohne einen letzten bekannten stabilen Status werden CloudFormation beim nächsten Stack-Vorgang gelöscht. Ressourcen, die erfolgreich bereitgestellt wurden, befinden sich in einem CREATE_COMPLETE- oder UPDATE_COMPLETE-Status. Sie können den Stack auf der Registerkarte Stack events (Stack-Ereignisse) überwachen.

Change set
Anmerkung

Sie können einen Änderungssatz für einen Stack mit dem Status von CREATE_FAILED oder UPDATE_FAILED initiieren nicht aber für einen Status von UPDATE_ROLLBACK_FAILED.

So können Sie erfolgreich bereitgestellte Ressourcen während eines Änderungssatz-Vorgangs beibehalten
  1. Melden Sie sich bei https://console.aws.amazon.com/cloudformation an AWS Management Console und öffnen Sie die AWS CloudFormation Konsole.

  2. Wählen Sie den Stack mit dem Änderungssatz, den Sie starten möchten, und klicken Sie dann auf die Registerkarte Change sets (Änderungssätze).

  3. Wählen Sie den Änderungssatz aus und klicken Sie dann auf Execute (Ausführen).

  4. Wählen Sie für Execute change set (Änderungssatz ausführen) die Option Preserve successfully provisioned resources (Erfolgreich bereitgestellte Ressourcen beibehalten).

  5. Wählen Sie Execute change set (Änderungssatz ausführen).

Ergebnisse: Ressourcen, die nicht aktualisiert werden konnten, übertragen den Stack-Status auf UPDATE_FAILED und setzen Sie auf den letzten bekannten stabilen Zustand zurück. Ressourcen ohne einen letzten bekannten stabilen Status werden CloudFormation beim nächsten Stack-Vorgang gelöscht. Ressourcen, die erfolgreich bereitgestellt wurden, befinden sich in einem CREATE_COMPLETE- oder UPDATE_COMPLETE-Status. Sie können den Stack auf der Registerkarte Stack events (Stack-Ereignisse) überwachen.

Erfolgreich bereitgestellte Ressourcen beibehalten (AWS CLI)

Create stack
So können Sie erfolgreich bereitgestellte Ressourcen während eines Stack-Erstellungsvorgangs beibehalten

Geben Sie die --disable-rollback-Option oder die on-failure DO_NOTHING-Aufzählung während eines create-stack-Vorgangs ein.

  1. Geben Sie einen Stack-Namen und eine Vorlage für den create-stack-Befehl mit der --disable-rollback-Option an.

    aws cloudformation create-stack --stack-name myteststack \ --template-body file://template.yaml \ --disable-rollback

    Der Befehl gibt die folgende Ausgabe zurück.

    {     "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  2. Beschreiben Sie den Status des Stacks mit dem describe-stacks Befehl.

    aws cloudformation describe-stacks --stack-name myteststack

    Der Befehl gibt die folgende Ausgabe zurück.

    {     "Stacks":  [         {             "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",             "Description": "AWS CloudFormation Sample Template",             "Tags": [],             "Outputs": [],             "StackStatusReason": “The following resource(s) failed to create: [MyBucket]”,             "CreationTime": "2013-08-23T01:02:15.422Z",             "Capabilities": [],             "StackName": "myteststack",             "StackStatus": "CREATE_FAILED",             "DisableRollback": true         }     ] }
Update stack
Um erfolgreich bereitgestellte Ressourcen während eines Stack-Aktualisierungsvorgangs beizubehalten
  1. Geben Sie einen vorhandenen Stack-Namen und eine Vorlage für den update-stack-Befehl mit der --disable-rollback-Option an.

    aws cloudformation update-stack --stack-name myteststack \ --template-url https://s3.amazonaws.com/amzn-s3-demo-bucket/updated.template --disable-rollback

    Der Befehl gibt die folgende Ausgabe zurück.

    {     "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  2. Beschreiben Sie den Status des Stacks entweder mit dem describe-stack-events Befehl describe-stacks oder.

    aws cloudformation describe-stacks --stack-name myteststack

    Der Befehl gibt die folgende Ausgabe zurück.

    { "Stacks":  [         {             "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",             "Description": "AWS CloudFormation Sample Template",             "Tags": [],             "Outputs": [],             "CreationTime": "2013-08-23T01:02:15.422Z",             "Capabilities": [],             "StackName": "myteststack",             "StackStatus": "UPDATE_COMPLETE",             "DisableRollback": true         }     ] }
Change set
Anmerkung

Sie können einen Änderungssatz für einen Stack mit dem Status von CREATE_FAILED oder UPDATE_FAILED starten nicht aber für einen Status von UPDATE_ROLLBACK_FAILED.

So können Sie erfolgreich bereitgestellte Ressourcen während eines Änderungssatz-Vorgangs beibehalten

Geben Sie die --disable-rollback Option während eines execute-change-setVorgangs an.

  1. Geben Sie einen Stack-Namen und eine Vorlage für den execute-change-set-Befehl mit der --disable-rollback-Option an.

    aws cloudformation execute-change-set --stack-name myteststack \ --change-set-name my-change-set --template-body file://template.yaml

    Der Befehl gibt die folgende Ausgabe zurück.

    {  "Id": "arn:aws:cloudformation:us-east-1:123456789012:changeSet/my-change-set/bc9555ba-a949-xmpl-bfb8-f41d04ec5784",  "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  2. Starten Sie den Änderungssatz mit Option --disable-rollback.

    aws cloudformation execute-change-set --stack-name myteststack \ --change-set-name my-change-set -–disable-rollback
  3. Ermitteln Sie den Status des Stacks entweder mit dem describe-stack-events Befehl describe-stacks oder.

    aws cloudformation describe-stack-events --stack-name myteststack

    Der Befehl gibt die folgende Ausgabe zurück.

    { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "EventId": "49c966a0-7b74-11ea-8071-024244bb0672", "StackName": "myteststack", "LogicalResourceId": " MyBucket", "PhysicalResourceId": "myteststack-MyBucket-abcdefghijk1", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2020-04-10T21:43:17.015Z", "ResourceStatus": "UPDATE_FAILED" "ResourceStatusReason": "User XYZ is not allowed to perform S3::UpdateBucket on MyBucket" } }
  4. Korrigieren Sie Berechtigungsfehler und versuchen Sie den Vorgang erneut.

    aws cloudformation update-stack --stack-name myteststack \ --use-previous-template --disable-rollback

    Der Befehl gibt die folgende Ausgabe zurück.

    {     "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
  5. Beschreiben Sie den Status des Stacks entweder mit dem describe-stack-events Befehl describe-stacks oder.

    aws cloudformation describe-stacks --stack-name myteststack

    Der Befehl gibt die folgende Ausgabe zurück.

    {     "Stacks":  [         {             "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896",             "Description": "AWS CloudFormation Sample Template",             "Tags": [],             "Outputs": [],             "CreationTime": "2013-08-23T01:02:15.422Z",             "Capabilities": [],             "StackName": "myteststack",             "StackStatus": "UPDATE_COMPLETE",             "DisableRollback": true         }     ] }

Einen Stapel rückgängig machen

Sie können den Befehl rollback-stack verwenden, um einen Stack mit einem CREATE_FAILED oder UPDATE_FAILED Stack-Status auf seinen letzten stabilen Zustand zurückzusetzen.

Mit dem folgenden rollback-stack Befehl wird der angegebene Stack zurückgesetzt.

aws cloudformation rollback-stack --stack-name myteststack

Der Befehl gibt die folgende Ausgabe zurück.

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }
Anmerkung

Der rollback-stack-Vorgang löscht einen Stack, wenn er keinen letzten bekannten stabilen Zustand enthält.