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)
Öffnen Sie die AWS CloudFormation Konsole unter https://console.aws.amazon.com/cloudformation
. -
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 diesenUPDATE_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:
. Wenn Sie die logische ID einer Stack-Ressource (NestedStackName
.ResourceLogicalID
Type: AWS::CloudFormation::Stack
) in derResourcesToSkip
-Liste angeben möchten, dass muss sich der zugehörige eingebettete Stapel in einem der folgenden Zustände befinden:DELETE_IN_PROGRESS
,DELETE_COMPLETE
oderDELETE_FAILED
.
So setzen Sie den Rollback einer Aktualisierung fort (AWS CLI)
-
Verwenden Sie den Befehl
aws cloudformation continue-update-rollback
mit der Optionstack-name
, um die ID des Stacks anzugeben, bei dem Sie den Rollback-Vorgang fortsetzen möchten.
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.](images/cfn-update-stack-continue-update-rollback_nested-stacks.png)
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:
myCustom
WebInfra-compute-asg.myASG
WebInfra-Rechen-LB. myLoadBalancer
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
angegebenen haben, für die Ressourcen des Root-Stacks, z. B. myCustom, wurde jedoch nur die logische ID angegeben.NestedStackName
.ResourceLogicalID
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.