Rollback einer Aktualisierung fortsetzen - 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.

Rollback einer Aktualisierung fortsetzen

Ein Stack geht in den UPDATE_ROLLBACK_FAILED Zustand über, in dem nicht alle Änderungen während eines Updates rückgängig gemacht werden AWS CloudFormation können. Beispielsweise könnten Sie einen Stack haben, der mit dem Rollback auf eine alte Datenbankinstanz beginnt, die außerhalb von gelöscht wurde CloudFormation. Weil CloudFormation er nicht weiß, dass die Datenbank gelöscht wurde, geht er davon aus, dass die Datenbankinstanz noch existiert, und versucht, ein Rollback zu ihr durchzuführen, was dazu führt, dass das Update-Rollback fehlschlägt.

Wenn ein Stack den Status UPDATE_ROLLBACK_FAILED hat, können Sie mit dem Rollback fortfahren, um ihn in einen betriebsbereiten Zustand (UPDATE_ROLLBACK_COMPLETE) zu versetzen. Sie können einen Stack mit dem Status UPDATE_ROLLBACK_FAILED nicht aktualisieren. Wenn es jedoch möglich ist, mit dem Rollback fortzufahren, können Sie den Stack auf seine ursprünglichen Einstellungen zurücksetzen und dann erneut versuchen, ihn zu aktualisieren.

In den meisten Fällen müssen Sie den Fehler beheben, der das Fehlschlagen des Rollback der Aktualisierung verursacht hat, bevor Sie mit dem Zurücksetzen des Stacks fortfahren können. In anderen Fällen können Sie auch ohne Änderungen ein Rollback der Aktualisierung durchführen, z. B., wenn bei einem Stack-Vorgang eine Zeitüberschreitung auftritt.

Anmerkung

Wenn Sie verschachtelte Stacks verwenden, wird beim Rollback des übergeordneten Stacks versucht, auch ein Rollback für alle untergeordneten Stacks durchzuführen.

So setzen Sie den Rollback-Vorgang für eine Aktualisierung fort (Konsole)
  1. Ö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, klicken Sie auf Stack-Aktionen und anschließend auf Continue update rollback (Rollback der Aktualisierung fortsetzen) aus.

    Wenn keine der Lösungen Behebung von Fehlern funktioniert hat, können Sie die erweiterte Option verwenden, um die Ressourcen zu überspringen, CloudFormation für die ein Rollback nicht erfolgreich durchgeführt werden konnte. Sie müssen logischen IDs der Ressourcen nachschlagen und eingeben, die Sie überspringen möchten. Geben Sie nur Ressourcen an, die während des Forward-Updates UpdateRollback und nicht während des Forward-Updates in diesen UPDATE_FAILED Status übergegangen sind.

    Warnung

    CloudFormation setzt den Status der angegebenen Ressourcen auf UPDATE_COMPLETE und setzt das Rollback des Stacks fort. Nachdem der Rollback-Vorgang abgeschlossen ist, entspricht der Status der übersprungenen Ressourcen nicht dem Status der Ressourcen in der Stack-Vorlage. Bevor Sie eine weitere Stack-Aktualisierung durchführen, müssen Sie den Stack oder die Ressourcen aktualisieren, sodass ihr Status konsistent ist. Andernfalls schlagen nachfolgende Aktualisierungen fehl und der Stack lässt sich nicht mehr wiederherstellen.

    Geben Sie die Mindestanzahl von Ressourcen, die erforderlich ist, um einen erfolgreichen Rollback-Vorgang mit dem Stack durchzuführen. Beispielsweise kann eine fehlgeschlagene Ressourcenaktualisierung dazu führen, dass abhängige Ressourcen fehlschlagen. In diesem Fall ist es u. U. nicht erforderlich, die abhängigen Ressourcen zu überspringen.

    Verwenden Sie das folgende Format, um Ressourcen, die Teil verschachtelter Stacks sind, zu überspringen: NestedStackName.ResourceLogicalID. Wenn Sie die logische ID einer Stack-Ressource (Type: AWS::CloudFormation::Stack) in der ResourcesToSkip-Liste angeben möchten, dass muss sich der zugehörige eingebettete Stapel in einem der folgenden Zustände befinden: DELETE_IN_PROGRESS, DELETE_COMPLETE oder DELETE_FAILED.

So setzen Sie den Rollback einer Aktualisierung fort (AWS CLI)

Unter Verwendung von ResourcesToSkip eine verschachtelte Stack-Hierarchie wiederherstellen

Das folgende Diagramm zeigt eine verschachtelte Stack-Hierarchie, die den Status UPDATE_ROLLBACK_FAILED hat. In diesem Beispiel enthält der WebInfra-Root-Stack zwei geschachtelte Stacks: WebInfra-Compute und WebInfra-Storage, die wiederum einen oder mehrere verschachtelte Stacks enthalten.

Ein Diagramm, das eine verschachtelte Stack-Hierarchie mit drei Ebenen zeigt.
Anmerkung

In diesem Beispiel werden der Einfachheit halber verkürzte Stack-Namen verwendet. Namen untergeordneter Stacks werden in der Regel durch eindeutige zufällige Zeichenketten generiert CloudFormation und enthalten diese, sodass tatsächliche Namen möglicherweise nicht benutzerfreundlich sind.

Um den Root-Stack unter Verwendung von continue-update-rollback in einen betriebsbereiten Status zu versetzen, müssen Sie den resources-to-skip angeben, um die fehlgeschlagenen Rollback-Ressourcen zu überspringen. In diesem Beispiel umfasst resources-to-skip die folgenden Elemente:

  1. myCustom

  2. WebInfra-compute-asg.myASG

  3. WebInfra-Rechen-LB. myLoadBalancer

  4. WebInfra-Storage.DB

Das folgende Beispiel ist der vollständige AWS CLI Befehl:

$ aws cloudformation continue-update-rollback --stack-name WebInfra \ --resources-to-skip myCustom WebInfra-Compute-Asg.myAsg WebInfra-Compute-LB.myLoadBalancer WebInfra-Storage.DB

Beachten Sie, dass wir Ressourcen aus verschachtelten Stacks im Format NestedStackName.ResourceLogicalID angegebenen haben, für die Ressourcen des Root-Stacks, z. B. myCustom, wurde jedoch nur die logische ID angegeben.

Ermitteln des Stack-Namens eines verschachtelten Stacks

Sie können den Namen eines untergeordneten Stacks dem Namen der Stack-ID oder seinem Amazon-Ressourcennamen (ARN) entnehmen. Im folgenden Beispiel lautet der Stack-Name WebInfra-Storage-Z2VKC706xKXT:

arn:aws:cloudformation:us-east-1:123456789012:stack/WebInfra-Storage-Z2VKC706XKXT/ea9e7f90-54f7-11e6-a032-028f3d2330bd

Ermitteln der logischen ID eines verschachtelten Stacks

Die logische ID eines untergeordneten Stacks ist in der Vorlagendefinition seines übergeordneten Stacks enthalten. Im Diagramm entspricht die LogicalId des untergeordneten Stacks WebInfra-Storage-DB der Zeichenfolge DB im übergeordneten WebInfra-Storage.

In der CloudFormation Konsole finden Sie die logische ID auch in der Spalte Logische ID für die Stack-Ressource auf der Registerkarte Ressourcen oder auf der Registerkarte Ereignisse.