Wie aktualisiere ich einen CloudFormation-Stack, der aufgrund einer manuell gelöschten Ressource ausfällt?

Lesedauer: 3 Minute
0

Ich habe eine Ressource, die von einem meiner AWS-CloudFormation-Stacks erstellt wurde, manuell gelöscht, und jetzt wird mein Stack nicht aktualisiert.

Kurzbeschreibung

Wenn Sie eine Ressource löschen, die von einem CloudFormation-Stack erstellt wurde, kann Ihr Stack nicht aktualisiert werden und Sie erhalten eine Fehlermeldung.

Wählen Sie je nach Ressourcentyp eine der folgenden Lösungen aus:

  • Aktualisieren einer Ressource mit einem eindeutigen Namen
  • Aktualisieren einer Ressource mit einer eindeutigen ID

Lösung

Aktualisieren einer Ressource mit einem eindeutigen Namen

Wenn die gelöschte Ressource einen eindeutigen Namen unterstützt, können Sie Ihren Stack aktualisieren, indem Sie die Ressource manuell erstellen. Die neue Ressource muss jedoch denselben Namen wie die gelöschte Ressource haben. Sie können beispielsweise beeinflussen, wie CloudFormation mit einer Ressource umgeht, wenn Sie einen Ressourcennamen ändern. Dies liegt daran, dass die Rollen von AWS Identity and Access Management (IAM) nach Namen verfolgt werden. Wenn Sie versehentlich eine IAM-Rolle löschen, können Sie diese Rolle mit demselben Namen manuell neu erstellen.

Gehen Sie wie folgt vor, um eine IAM-Rolle oder eine andere Ressource mit einem eindeutigen Namen zu aktualisieren:

  1. Öffnen Sie die AWS CloudFormation-Konsole.
  2. Wählen Sie Ihren Stack aus und wählen Sie dann die Ansicht Ressourcen.
  3. Suchen Sie in der Spalte Physische ID die physische ID der IAM-Rolle, die Sie durch Ihre neue IAM-Rolle ersetzen möchten.
    Anmerkung: Die physische ID ist der Name der Ressource.
  4. Erstellen Sie eine neue IAM-Rolle und weisen Sie der neuen Rolle dann dieselbe physische ID zu, die Sie in Schritt 3 gefunden haben.
  5. Aktualisieren Sie Ihren Stack.

Anmerkung: Weitere Informationen finden Sie unter Eine Stack-Vorlage ändern.

Aktualisieren einer Ressource mit einer eindeutigen ID

Sie können eine Ressource, z. B. eine Routing-Tabelle, nicht manuell mit einer eindeutigen ID neu erstellen. Stattdessen müssen Sie die Ressource und alle Verweise auf diese Ressource aus Ihrer CloudFormation-Vorlage entfernen.

Anmerkung: Die folgende Lösung funktioniert auch für Ressourcen, die keinen eindeutigen Namen oder keine eindeutige ID unterstützen. Zum Beispiel ein Datensatz, der in einer gehosteten Zone gesetzt wurde.

Gehen Sie wie folgt vor, damit CloudFormation eine Routing-Tabelle oder eine andere Ressource mit einer eindeutigen ID neu erstellen kann:

  1. Entfernen Sie in Ihrer CloudFormation-Vorlage die Routing-Tabelle und alle Verweise darauf.
  2. Aktualisieren Sie den Stack.
    Anmerkung: CloudFormation versucht, die Routing-Tabelle zu löschen. Da die Ressource bereits gelöscht wurde, betrachtet CloudFormation das Löschen als erfolgreichen Vorgang.
  3. Fügen Sie die Routing-Tabelle und alle zusätzlichen Ressourcen oder Referenzen, die Sie benötigen, wieder zu Ihrer CloudFormation-Vorlage hinzu.
  4. Aktualisieren Sie dann Ihren Stack erneut.
    **Anmerkung:**CloudFormation erstellt die gelöschte Ressource neu.

Weitere Informationen

Problembehandlung bei AWS CloudFormation