Wie lösche ich einen AWS CloudFormation-Stack, der im Status DELETE_FAILED hängen bleibt?

Lesedauer: 4 Minute
0

Ich möchte meinen AWS CloudFormation-Stack löschen, aber mein Stack bleibt im Status DELETE_FAILED hängen.

Kurzbeschreibung

Ihr Stack könnte aus den folgenden Gründen im Status DELETE_FAILED hängen bleiben:

  • Eine Stack-Ressource hat ein abhängiges Objekt oder andere Abhängigkeiten, die nicht gelöscht werden können. Um dieses Problem zu beheben, führen Sie die Schritte im Abschnitt Löschen eines Stacks mit einem abhängigen Objekt oder anderen Abhängigkeiten aus, die nicht gelöscht werden können .
  • Die verwendete Servicerolle ist ungültig oder kann nicht übernommen werden. Um dieses Problem zu beheben, führen Sie die Schritte im Abschnitt Einen Stapel mit einer ungültigen Rolle löschen.
  • Eine benutzerdefinierte Ressource konnte sich nicht innerhalb der erwarteten Zeit stabilisieren. Um dieses Problem zu beheben, führen Sie die Schritte im Abschnitt Löschen eines Stacks für eine benutzerdefinierte Ressource, deren Stabilisierung fehlgeschlagen ist aus.

Behebung

Löschen Sie einen Stack mit einem abhängigen Objekt oder anderen Abhängigkeiten, die nicht gelöscht werden können

Abhängigkeitsprobleme treten normalerweise auf, wenn Sie eine Out-of-Band-Änderung vornehmen. Beispielsweise schlägt Ihr Stack fehl, wenn eine Sicherheitsgruppe, die Teil Ihres Stacks ist, an eine elastische Netzwerkschnittstelle angehängt wird, die nicht Teil Ihres Stacks ist. Der Stack schlägt fehl, da die Sicherheitsgruppenressource nicht gelöscht werden kann. Um den Stack zu löschen, müssen Sie diese abhängige Ressource beibehalten.

Führen Sie die folgenden Schritte aus, um einen Stack zu löschen und gleichzeitig eine Ressource beizubehalten:

AWS CloudFormation-Konsole

  1. Öffnen Sie die AWS CloudFormation-Konsole.
  2. Wählen Sie den Stack aus, der im Status DELETE_FAILED feststeckt.
  3. Wählen Sie Löschen aus.
    Hinweis: Ein Fenster wird geöffnet und listet die Ressourcen auf, die nicht gelöscht werden konnten.
  4. Wählen Sie im Fenster alle Ressourcen aus, die Sie behalten möchten, und wählen Sie dann Stack löschen aus.

AWS-Befehlszeilenschnittstelle

Hinweis: Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Führen Sie den folgenden Befehl delete-stack aus:

$ aws cloudformation delete-stack --stack-name my-stack --retain-resources myresource1 myresource2

Hinweis: Ersetzen Sie my-stack durch den Namen Ihres Stacks. Ersetzen Sie myresource1 und myresource2 durch die logischen IDs der Ressourcen, die nicht gelöscht werden konnten.

Der CloudFormation-Stack versucht erneut, den Stack zu löschen, löscht jedoch keine der Ressourcen, die Sie zur Beibehaltung ausgewählt haben. Der Status Ihres Stacks ändert sich in DELETE_COMPLETE.

Wichtig: Um unnötige Kosten zu vermeiden, müssen Sie die beim Löschen des Stacks erhaltenen Ressourcen manuell löschen.

Löschen Sie einen Stack mit einer ungültigen Rolle

Wenn Sie versuchen, einen Stack zu löschen, der mit einer nicht vorhandenen Servicerolle erstellt wurde, erhalten Sie die folgende Fehlermeldung: „Beim Aufrufen des Vorgangs DeleteStack ist ein Fehler aufgetreten (ValidationError): ist ungültig oder kann nicht angenommen werden.“

Um diesen Fehler zu beheben, führen Sie die folgenden Schritte aus:

  1. Öffnen Sie die AWS CloudFormation-Konsole.
  2. Wählen Sie den Stack aus, den Sie löschen möchten, um seine Details zu sehen.
  3. Notieren Sie sich auf der Registerkarte Stack-Info den Namen der IAM-Rolle, die dem Stack zugewiesen ist.
  4. Erstellen Sie eine AWS Identitäts- und Zugriffsmanagement (Identity and Access Management) (IAM)-Rolle mit demselben Namen wie die IAM-Rolle in Schritt 3.
    Wichtig: Wenn Sie Ihre IAM-Rolle erstellen, stellen Sie sicher, dass sie über die richtigen Berechtigungen verfügt, um die Ressourcen im Stack zu löschen.
  5. Versuchen Sie in der AWS CloudFormation-Konsole erneut, den Stack zu löschen.

Löschen Sie einen Stapel für eine benutzerdefinierte Ressource, die sich nicht stabilisieren konnte

Informationen zum Löschen eines Stacks für eine benutzerdefinierte Ressource, die sich in der erwarteten Zeit nicht stabilisiert hat, finden Sie unter Wie behebe ich Probleme mit einer von AWS Lambda unterstützten benutzerdefinierten Ressource, die in AWS CloudFormation im Status DELETE_FAILED oder DELETE_IN\ _PROGRESS hängen bleibt?