Führen Sie einen Rollback zur vorherigen KCL-Version durch - Amazon-DynamoDB

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.

Führen Sie einen Rollback zur vorherigen KCL-Version durch

In diesem Thema wird erklärt, wie Sie Ihre Verbraucheranwendung auf die vorherige KCL-Version zurücksetzen können. Der Rollback-Prozess besteht aus zwei Schritten:

  1. Führen Sie das KCL-Migrationstool aus.

  2. Stellen Sie den Code der vorherigen KCL-Version erneut bereit.

Schritt 1: Führen Sie das KCL-Migrationstool aus

Wenn Sie zur vorherigen KCL-Version zurückkehren müssen, müssen Sie das KCL-Migrationstool ausführen. Das Tool erfüllt zwei wichtige Aufgaben:

  • Es entfernt eine Metadatentabelle namens Worker Metrics Table und den globalen Sekundärindex aus der Leasing-Tabelle in DynamoDB. Diese Artefakte werden von KCL 3.x erstellt, werden aber nicht benötigt, wenn Sie zur vorherigen Version zurückkehren.

  • Dadurch werden alle Worker in einem mit KCL 1.x kompatiblen Modus ausgeführt und beginnen, den Load-Balancing-Algorithmus zu verwenden, der in früheren KCL-Versionen verwendet wurde. Wenn Sie Probleme mit dem neuen Load-Balancing-Algorithmus in KCL 3.x haben, wird das Problem dadurch sofort behoben.

Wichtig

Die Koordinatorstatustabelle in DynamoDB muss vorhanden sein und darf während des Migrations-, Rollback- und Rollforward-Prozesses nicht gelöscht werden.

Anmerkung

Es ist wichtig, dass alle Worker in Ihrer Consumer-Anwendung zu einem bestimmten Zeitpunkt denselben Load-Balancing-Algorithmus verwenden. Das KCL-Migrationstool stellt sicher, dass alle Worker in Ihrer KCL 3.x-Consumer-Anwendung in den KCL 1.x-kompatiblen Modus wechseln, sodass alle Worker während des Anwendungs-Rollbacks zur vorherigen KCL-Version denselben Load-Balancing-Algorithmus ausführen.

Sie können das KCL-Migrationstool im Skriptverzeichnis des KCL-Repositorys herunterladen. GitHub Führen Sie das Skript von einem Worker oder Host aus, der über die entsprechenden Berechtigungen verfügt, um in die Tabelle mit den Koordinatorstatus, die Tabelle mit den Worker-Metriken und die Leasing-Tabelle zu schreiben. Stellen Sie sicher, dass die entsprechenden IAM-Berechtigungen für KCL-Verbraucheranwendungen konfiguriert sind. Führen Sie das Skript mit dem angegebenen Befehl nur einmal pro KCL-Anwendung aus:

python3 ./KclMigrationTool.py --region region --mode rollback [--application_name applicationName] [--lease_table_name leaseTableName] [--coordinator_state_table_name coordinatorStateTableName] [--worker_metrics_table_name workerMetricsTableName]

Parameter

--region

Ersetze es region durch dein AWS-Region.

--application_name

Dieser Parameter ist erforderlich, wenn Sie Standardnamen für Ihre DynamoDB-Metadatentabellen (Leasetabelle, Koordinatorstatustabelle und Worker-Metriktabelle) verwenden. Wenn Sie benutzerdefinierte Namen für diese Tabellen angegeben haben, können Sie diesen Parameter weglassen. Ersetzen Sie ihn applicationName durch Ihren tatsächlichen KCL-Anwendungsnamen. Das Tool verwendet diesen Namen, um die Standardtabellennamen abzuleiten, falls keine benutzerdefinierten Namen angegeben werden.

--lease_table_name

Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Leasetabelle festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen. leaseTableNameErsetzen Sie ihn durch den benutzerdefinierten Tabellennamen, den Sie für Ihre Leasingtabelle angegeben haben.

--coordinator_state_table_name

Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Koordinatorstatustabelle festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen. coordinatorStateTableNameErsetzen Sie ihn durch den benutzerdefinierten Tabellennamen, den Sie für Ihre Koordinatorstatustabelle angegeben haben.

--worker_metrics_table_name

Dieser Parameter wird benötigt, wenn Sie in Ihrer KCL-Konfiguration einen benutzerdefinierten Namen für die Tabelle mit den Worker-Metriken festgelegt haben. Wenn Sie den Standardtabellennamen verwenden, können Sie diesen Parameter weglassen. workerMetricsTableNameErsetzen Sie ihn durch den Namen der benutzerdefinierten Tabelle, den Sie für Ihre Tabelle mit Arbeitskennzahlen angegeben haben.

Schritt 2: Stellen Sie den Code erneut mit der vorherigen KCL-Version bereit

Wichtig

Jede Erwähnung von Version 2.x in der vom KCL Migration Tool generierten Ausgabe sollte als Bezugnahme auf KCL-Version 1.x interpretiert werden. Die Ausführung des Skripts führt kein vollständiges Rollback durch, es wird lediglich der Load-Balancing-Algorithmus auf den in KCL Version 1.x verwendeten umgestellt.

Nachdem Sie das KCL-Migrationstool für ein Rollback ausgeführt haben, wird eine der folgenden Meldungen angezeigt:

Nachricht 1

„Rollback abgeschlossen. In Ihrer Anwendung wurden doppelt so viele kompatible Funktionen ausgeführt. Bitte führen Sie ein Rollback zu Ihren vorherigen Anwendungsbinärdateien durch, indem Sie den Code mit Ihrer vorherigen KCL-Version bereitstellen.“

Erforderliche Maßnahme: Dies bedeutet, dass Ihre Mitarbeiter im KCL 1.x-kompatiblen Modus ausgeführt wurden. Stellen Sie den Code mit der vorherigen KCL-Version erneut für Ihre Mitarbeiter bereit.

Nachricht 2

„Rollback abgeschlossen. Ihre KCL-Anwendung hat die dreifache Funktionalität ausgeführt und wird auf die doppelte kompatible Funktionalität zurückgesetzt. Wenn Sie nach kurzer Zeit keine Abhilfemaßnahmen sehen, führen Sie bitte ein Rollback zu Ihren vorherigen Anwendungsbinärdateien durch, indem Sie den Code zusammen mit Ihrer vorherigen KCL-Version bereitstellen.“

Erforderliche Maßnahme: Das bedeutet, dass Ihre Mitarbeiter im KCL 3.x-Modus liefen und das KCL-Migrationstool alle Worker in den KCL 1.x-kompatiblen Modus umgestellt hat. Stellen Sie den Code mit der vorherigen KCL-Version erneut für Ihre Mitarbeiter bereit.

Nachricht 3

„Die Anwendung wurde bereits zurückgesetzt. Alle KCLv3 Ressourcen, die gelöscht werden konnten, wurden bereinigt, um Gebühren zu vermeiden, bis die Anwendung im Rahmen der Migration wiederhergestellt werden kann.“

Erforderliche Maßnahme: Dies bedeutet, dass für Ihre Mitarbeiter bereits ein Rollback durchgeführt wurde, sodass sie im KCL 1.x-kompatiblen Modus ausgeführt werden konnten. Stellen Sie den Code mit der vorherigen KCL-Version erneut für Ihre Mitarbeiter bereit.