Eine Bereitstellung erneut bereitstellen und rückgängig machen mit CodeDeploy - AWS CodeDeploy

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.

Eine Bereitstellung erneut bereitstellen und rückgängig machen mit CodeDeploy

CodeDeploy macht Bereitstellungen rückgängig, indem eine zuvor bereitgestellte Version einer Anwendung erneut als neue Bereitstellung bereitgestellt wird. Diese Rollback-Bereitstellungen sind technisch gesehen neue Bereitstellungen mit neuen Bereitstellungs-IDs und keine wiederhergestellten Versionen einer vorherigen Bereitstellung.

Bereitstellungen können automatisch oder manuell zurückgesetzt werden.

Automatische Rollbacks

Sie können eine Bereitstellungsgruppe oder Bereitstellung so konfigurieren, dass sie automatisch zurückgesetzt wird, wenn eine Bereitstellung fehlschlägt oder ein definierter Überwachungsschwellenwert erreicht wird. In diesem Fall wird die letzte als funktionierend bekannte Version der Anwendungsrevision bereitgestellt. Sie können automatische Rollbacks konfigurieren, wenn Sie eine Anwendung erstellen und eine Bereitstellungsgruppe erstellen oder aktualisieren.

Bei der Erstellung einer neuen Bereitstellung können Sie den für die Bereitstellungsgruppe konfigurierten automatischen Rollback auch überschreiben.

Anmerkung

Sie können Amazon Simple Notification Service verwenden, um eine Benachrichtigung zu erhalten, wenn eine Bereitstellung automatisch zurückgesetzt wird. Weitere Informationen finden Sie unter Monitoring Deployments with Amazon SNS Event Notifications.

Weitere Informationen zur Konfiguration von automatischen Rollbacks finden Sie unter Konfigurieren von erweiterten Optionen für eine Bereitstellungsgruppe.

Manuelle Rollbacks

Wenn Sie keine automatischen Rollbacks festgelegt haben, können Sie eine Bereitstellung manuell zurücksetzen, indem Sie eine neue Bereitstellung mit einer zuvor bereitgestellten Anwendungsrevision erstellen und die Schritte für die erneute Bereitstellung einer Revision befolgen. Dies ist sinnvoll, wenn eine Anwendung in einen unbekannten Status gewechselt hat. Anstatt viel Zeit mit der Fehlerbehebung zu verbringen, können Sie die Anwendung auf einen bekannten Zustand wiederherstellen und erneut bereitstellen. Weitere Informationen finden Sie unter Erstellen Sie eine Bereitstellung mit CodeDeploy.

Anmerkung

Wenn Sie eine Instanz aus einer Bereitstellungsgruppe entfernen, CodeDeploy wird nichts deinstalliert, was möglicherweise bereits auf dieser Instanz installiert war.

Arbeitsablauf für Rollback und erneutes Deployment

Wenn ein automatisches Rollback initiiert wird oder wenn Sie manuell eine erneute Bereitstellung oder ein manuelles Rollback initiieren, wird CodeDeploy zunächst versucht, alle Dateien, die zuletzt erfolgreich installiert wurden, aus jeder teilnehmenden Instanz zu entfernen. CodeDeploy überprüft dazu die Cleanup-Datei:

/opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanupDatei (für Amazon Linux-, Ubuntu Server- und RHEL-Instances)

C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanupDatei (für Windows Server-Instances)

Falls vorhanden, CodeDeploy verwendet die Cleanup-Datei, um alle aufgelisteten Dateien aus der Instanz zu entfernen, bevor die neue Bereitstellung gestartet wird.

Beispielsweise wurden die ersten beiden Textdateien und zwei Skriptdateien bereits auf einer Amazon EC2 EC2-Instance bereitgestellt, auf der Windows Server ausgeführt wird, und die Skripts erstellten während der Ereignisse im Bereitstellungslebenszyklus zwei weitere Textdateien:

c:\temp\a.txt (previously deployed by CodeDeploy) c:\temp\b.txt (previously deployed by CodeDeploy) c:\temp\c.bat (previously deployed by CodeDeploy) c:\temp\d.bat (previously deployed by CodeDeploy) c:\temp\e.txt (previously created by c.bat) c:\temp\f.txt (previously created by d.bat)

Die Cleanup-Datei enthält nur die ersten zwei Textdateien und zwei Skriptdateien:

c:\temp\a.txt c:\temp\b.txt c:\temp\c.bat c:\temp\d.bat

Vor der neuen Bereitstellung CodeDeploy werden nur die ersten beiden Textdateien und die beiden Skriptdateien entfernt, wobei die letzten beiden Textdateien unverändert bleiben:

c:\temp\a.txt will be removed c:\temp\b.txt will be removed c:\temp\c.bat will be removed c:\temp\d.bat will be removed c:\temp\e.txt will remain c:\temp\f.txt will remain

Im Rahmen dieses Vorgangs CodeDeploy wird nicht versucht, bei nachfolgenden Neubereitstellungen Aktionen rückgängig zu machen oder auf andere Weise miteinander in Einklang zu bringen, unabhängig davon, ob es sich um manuelle oder automatische Rollbacks handelt. Wenn die d.bat Dateien c.bat und beispielsweise die Logik enthalten, dass die Dateien und, falls sie bereits vorhanden sind, nicht neu erstellt f.txt werden, bleiben die alten Versionen von e.txt und bei jeder Ausführung und bei nachfolgenden Bereitstellungen unverändert. e.txt f.txt CodeDeploy c.bat d.bat Sie können eine Logik zu c.bat und d.bat hinzufügen, um vor dem Erstellen neuer Versionen nach alten Versionen von e.txt und f.txt zu suchen und diese zu löschen.

Rollback-Verhalten bei vorhandenem Inhalt

Im Rahmen des Bereitstellungsprozesses entfernt der CodeDeploy Agent aus jeder Instanz alle Dateien, die bei der letzten Bereitstellung installiert wurden. Wenn Dateien, die nicht Teil einer vorherigen Bereitstellung waren, an den Zielorten der Bereitstellung angezeigt werden, können Sie wählen, CodeDeploy was bei der nächsten Bereitstellung mit ihnen geschehen soll:

  • Fehlschlagen der Bereitstellung — Es wird ein Fehler gemeldet und der Bereitstellungsstatus wird in Fehlgeschlagen geändert.

  • Inhalt überschreiben — Die Version der Datei aus der Anwendungsrevision ersetzt die Version, die sich bereits auf der Instanz befindet.

  • Inhalt beibehalten — Die Datei am Zielort wird beibehalten und die Version in der Anwendungsrevision wird nicht in die Instanz kopiert.

Sie können dieses Verhalten wählen, wenn Sie eine Bereitstellung erstellen. Informationen zum Erstellen einer Bereitstellung in der Konsole finden Sie unterErstellen Sie eine EC2/On-Premises-Compute-Plattform-Bereitstellung (Konsole). Informationen zum Erstellen einer Bereitstellung mit dem AWS CLI finden Sie unterErstellen Sie eine EC2/On-Premises-Compute-Plattform-Bereitstellung (CLI).

Sie können entscheiden, Dateien für die nächste Bereitstellung beizubehalten, ohne diese zum Anwendungsrevisionspaket hinzufügen zu müssen. Sie können beispielsweise für die Breitstellung benötigte Dateien, die nicht zum Anwendungsrevisionsbündel hinzugefügt wurden, direkt in die Instance hochladen. Oder Sie können Dateien auf die Instanz hochladen, wenn sich Ihre Anwendungen bereits in Ihrer Produktionsumgebung befinden, Sie sie aber CodeDeploy zum ersten Mal verwenden möchten, um sie bereitzustellen.

Im Fall von Rollbacks, bei denen die letzte erfolgreich bereitgestellte Anwendungsrevision aufgrund eines Bereitstellungsfehlers erneut bereitgestellt wird, wird die Inhaltsverarbeitungsoption für diese letzte erfolgreichen Bereitstellung auf die Rollback-Bereitstellung angewandt.

Wenn die Bereitstellung jedoch so konfiguriert war, dass Dateien überschrieben und nicht beibehalten werden, kann während des Rollback ein unerwartetes Ergebnis entstehen. Insbesondere die Dateien, von denen Sie dachten, dass Sie beibehalten würden, könnten von der fehlgeschlagenen Bereitstellung gelöscht werden. Die Dateien sind nicht in der Instance, wenn die Rollback-Bereitstellung ausgeführt wird.

Im folgenden Beispiel werden drei Bereitstellungen beschrieben. Alle Dateien, die während der zweiten fehlgeschlagenen Bereitstellung überschrieben (gelöscht) werden, sind nicht mehr verfügbar (können nicht aufbewahrt werden), wenn die Anwendungsrevision 1 während der Bereitstellung 3 erneut bereitgestellt wird:

Bereitstellung

Anwendungsrevision.

Option zum Überschreiben von Inhalt

Bereitstellungsstatus

Verhalten und Ergebnis

Bereitstellung 1

Anwendungsrevision 1

AUFBEWAHREN

Erfolgreich

CodeDeploy erkennt Dateien an den Zielspeicherorten, die bei der vorherigen Bereitstellung nicht bereitgestellt wurden. Diese Dateien wurden möglicherweise absichtlich dort platziert, um ein Bestandteil der aktuellen Bereitstellung zu werden. Sie werden als Bestandteil des aktuellen Bereitstellungspakets aufbewahrt und erfasst.

Bereitstellung 2

Anwendungsrevision 2

ÜBERSCHREIBEN

Fehlgeschlagen

CodeDeploy Löscht während des Bereitstellungsvorgangs alle Dateien, die Teil der vorherigen erfolgreichen Bereitstellung waren. Dies umfasst die Dateien, die während Bereitstellung 1 aufbewahrt wurden.

Die Bereitstellung schlägt jedoch aus anderen Gründen fehl.

Bereitstellung 3

Anwendungsrevision 1

AUFBEWAHREN

Da das auto Rollback für die Bereitstellung oder Bereitstellungsgruppe aktiviert ist, wird die letzte als funktionierend bekannte Anwendungsrevision, Anwendungsrevision 1, CodeDeploy bereitgestellt.

Die Dateien, die Sie in Bereitstellung 1 behalten wollten, wurden jedoch gelöscht, bevor Bereitstellung 2 fehlschlug, und können von nicht abgerufen werden. AWS CodeDeploy Sie können diese Dateien selbst zu der Instance hinzufügen, wenn diese für Anwendungsrevision 1 benötigt werden, oder Sie können eine neue Anwendungsrevision erstellen.