Reparieren und Fortsetzen einer Workflow-Ausführung - AWS Glue

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.

Reparieren und Fortsetzen einer Workflow-Ausführung

Wenn ein oder mehrere Knoten (Aufträge oder Crawler) in einem Workflow nicht erfolgreich abgeschlossen werden, wurde der Workflow nur teilweise ausgeführt. Nachdem Sie die Ursachen ermittelt und Korrekturen vorgenommen haben, können Sie einen oder mehrere Knoten auswählen, von denen die Workflow-Ausführung fortgesetzt werden soll, und die Ausführung dann fortsetzen. Dadurch werden die ausgewählten Knoten und alle nachgelagerten Knoten ausgeführt.

Fortsetzen einer Workflow-Ausführung: Funktionsweise

Sehen Sie sich den Workflow W1 im folgenden Diagramm an.

Auslöser werden in Rechtecken angezeigt und Aufträge in Kreisen. Auslöser T1 auf der linken Seite startet den Workflow durch die Ausführung von Auftrag J1. Nachgelagerte Auslöser und Aufträge sind vorhanden, aber da die Aufträge J2 und J3 fehlschlagen, werden nachgelagerte Auslöser und Aufträge als nicht ausgeführt angezeigt.

Die Workflow-Ausführung läuft folgendermaßen ab:

  1. Auslöser T1 startet Auftrag J1.

  2. Der erfolgreiche Abschluss von J1 aktiviert T2 und T3, die die Aufträge J2 bzw. J3 ausführen.

  3. J2 und J3 schlagen fehl.

  4. Die Auslöser T4 und T5 hängen vom erfolgreichen Abschluss von J2 und J3 ab. Daher werden sie nicht aktiviert und die Aufträge J4 und J5 werden nicht ausgeführt. Workflow W1 wird nur teilweise ausgeführt.

Angenommen, die Probleme, die die Ausführung von J2 und J3 verhindern, werden behoben. J2 und J3 werden als Startpunkte ausgewählt, an denen die Workflow-Ausführung fortgesetzt werden soll.

Die Aufträge J2 und J3 werden als Knoten markiert, die fortgesetzt werden sollen. Nachgelagerte Auslöser und Aufträge werden als erfolgreich ausgeführt angezeigt.

Die Workflow-Ausführung wird folgendermaßen fortgesetzt:

  1. Die Aufträge J2 und J3 werden erfolgreich ausgeführt.

  2. Dadurch werden die Auslöser T4 und T5 aktiviert.

  3. Die Aufträge J4 und J5 werden erfolgreich ausgeführt.

Die fortgesetzte Workflow-Ausführung wird als separate Ausführung mit einer neuen Ausführungs-ID erfasst. Wenn Sie den Workflow-Verlauf aufrufen, können Sie die vorherige Ausführungs-ID für jede Workflow-Ausführung einsehen. Im Beispiel im folgenden Screenshot hatte die Workflow-Ausführung mit der Ausführungs-ID wr_c7a22... (zweite Zeile) einen Knoten, der nicht abgeschlossen wurde. Der Benutzer hat das Problem behoben und die Workflow-Ausführung fortgesetzt, wodurch die Ausführungs-ID wr_a07e55... (erste Zeile) generiert wurde.

Eine Tabelle auf der Registerkarte „History“ (Verlauf) für einen Workflow enthält zwei Zeilen, eine für jede Workflow-Ausführung. Die erste Zeile enthält die Ausführungs-ID und die vorherige Ausführungs-ID. Die zweite Zeile enthält nur eine Ausführungs-ID. Die vorherige Ausführungs-ID in der ersten Zeile entspricht der Ausführungs-ID in der zweiten Zeile.
Anmerkung

Für den Rest dieses Artikels bezieht sich der Begriff „fortgesetzte Workflow-Ausführung“ auf die Ausführung, die beim Fortsetzen der vorherigen Workflow-Ausführung erstellt wurde. Die „ursprüngliche Workflow-Ausführung“ bezieht sich auf den Workflow, der nur teilweise ausgeführt wurde und deswegen fortgesetzt werden musste.

Diagramm mit fortgesetzter Workflow-Ausführung

In einer fortgesetzten Workflow-Ausführung ist das Ausführungsdiagramm vollständig, obwohl nur eine Teilmenge von Knoten ausgeführt wird. Die Knoten, die bei der fortgesetzten Workflow-Ausführung nicht ausgeführt wurden, werden daher aus dem Ausführungsdiagramm der ursprünglichen Workflow-Ausführung kopiert. Kopierte Auftrags- und Crawlerknoten, die Teil der ursprünglichen Workflow-Ausführung waren, enthalten Ausführungsdetails.

Betrachten Sie noch einmal den Workflow W1 im vorherigen Diagramm. Wenn die Ausführung mit J2 und J3 fortgesetzt wird, zeigt das Ausführungsdiagramm für die fortgesetzte Workflow-Ausführung alle Aufträge (J1 bis J5) und alle Auslöser (T1 bis T5) an. Die Ausführungsdetails für J1 werden aus der ursprünglichen Workflow-Ausführung kopiert.

Snapshots der Workflow-Ausführung

Wenn eine Workflow-Ausführung gestartet wird, erstellt AWS Glue einen Snapshot des Workflow-Entwurfsdiagramms. Dieser Snapshot wird für die Dauer der Workflow-Ausführung verwendet. Wenn Sie nach dem Start der Ausführung Änderungen an Auslösern vornehmen, wirken sich diese Änderungen nicht auf die aktuelle Workflow-Ausführung aus. Snapshots stellen sicher, dass Workflow-Ausführungen konsistent ablaufen.

Snapshots machen nur Auslöser unveränderlich. Änderungen, die Sie während der Workflow-Ausführung an nachgelagerten Aufträgen und Crawlern vornehmen, werden für die aktuelle Ausführung wirksam.

Fortsetzen einer Workflow-Ausführung

Führen Sie diese Schritte aus, um eine Workflow-Ausführung fortzusetzen. Zum Fortsetzen einer Workflow-Ausführung können Sie die AWS Glue-Konsole, -API oder -AWS Command Line Interface (AWS CLI) verwenden.

Eine Workflow-Ausführung fortsetzen (Konsole)
  1. Öffnen Sie die AWS Glue-Konsole unter https://console.aws.amazon.com/glue/.

    Melden Sie sich als Benutzer an, der Berechtigungen zum Anzeigen von Workflows und zum Fortsetzung von Workflow-Ausführungen hat.

    Anmerkung

    Um Workflow-Ausführungen fortzusetzen, benötigen Sie die IAM-Berechtigung (AWS Identity and Access Management) glue:ResumeWorkflowRun.

  2. Wählen Sie im Navigationsbereich die Option Workflows aus.

  3. Wählen Sie einen Workflow und dann die Registerkarte History (Verlauf) aus.

  4. Wählen Sie einen Workflow aus, der nur teilweise ausgeführt wurde, und gehen Sie auf View run details (Ausführungsdetails anzeigen).

  5. Wählen Sie im Ausführungsdiagramm den ersten (oder einzigen) Knoten aus, den Sie neu starten und von dem Sie die Workflow-Ausführung fortsetzen möchten.

  6. Wählen Sie im Detailbereich rechts neben dem Diagramm das Kontrollkästchen Resume (Fortsetzen) aus.

    Das Ausführungsdiagramm zeigt drei Knoten, darunter einen fehlgeschlagenen Auftragsknoten. Der Bereich mit den Auftragsdetails auf der rechten Seite enthält das Kontrollkästchen „Resume“ (Fortsetzen).

    Die Farbe des Knotens ändert sich und oben rechts wird ein kleines Fortsetzungssymbol angezeigt.

    Die Änderung des Ausführungsdiagramms wird im Text beschrieben. Das Kontrollkästchen „Resume“ (Fortsetzen) ist aktiviert.
  7. Führen Sie die beiden vorherigen Schritte aus, um weitere Knoten neu zu starten.

  8. Wählen Sie erneut Resume (Fortsetzen) aus.

Eine Workflow-Ausführung fortsetzen (AWS CLI)
  1. Stellen Sie sicher, dass Sie die IAM-Berechtigung glue:ResumeWorkflowRun haben.

  2. Rufen Sie die Knoten-IDs für die Knoten ab, die Sie neu starten möchten.

    1. Führen Sie für die ursprüngliche Workflow-Ausführung den Befehl get-workflow-run aus. Geben Sie den Workflow-Namen und die Ausführungs-ID an und fügen Sie die Option --include-graph hinzu, wie im folgenden Beispiel veranschaulicht. Rufen Sie die Ausführungs-ID von der Registerkarte History (Verlauf) in der Konsole ab oder führen Sie dazu den Befehl get-workflow aus.

      aws glue get-workflow-run --name cloudtrailtest1 --run-id wr_a07e55f2087afdd415a404403f644a4265278f68b13ba3da08c71924ebe3c3a8 --include-graph

      Der Befehl gibt die Knoten und Edges des Diagramms als großes JSON-Objekt zurück.

    2. Suchen Sie die relevanten Knoten anhand der Type- und Name-Eigenschaften der Knotenobjekte.

      Das folgende Beispiel zeigt ein Knotenobjekt aus der Ausgabe.

      {
          "Type": "JOB",
          "Name": "test1_post_failure_4592978",
          "UniqueId": "wnode_d1b2563c503078b153142ee76ce545fe5ceef66e053628a786ddd74a05da86fd",
          "JobDetails": {
              "JobRuns": [
                  {
                      "Id": "jr_690b9f7fc5cb399204bc542c6c956f39934496a5d665a42de891e5b01f59e613",
                      "Attempt": 0,
                      "TriggerName": "test1_aggregate_failure_649b2432",
                      "JobName": "test1_post_failure_4592978",
                      "StartedOn": 1595358275.375,
                      "LastModifiedOn": 1595358298.785,
                      "CompletedOn": 1595358298.785,
                      "JobRunState": "FAILED",
                      "PredecessorRuns": [],
                      "AllocatedCapacity": 0,
                      "ExecutionTime": 16,
                      "Timeout": 2880,
                      "MaxCapacity": 0.0625,
                      "LogGroupName": "/aws-glue/python-jobs"
                  }
              ]
          }
      }
    3. Rufen Sie die Knoten-ID aus der UniqueId-Eigenschaft des Knotenobjekts ab.

  3. Führen Sie den Befehl resume-workflow-run aus. Geben Sie den Workflow-Namen, die Ausführungs-ID und die Liste der Knoten-IDs durch Leerzeichen getrennt an, wie im folgenden Beispiel veranschaulicht.

    aws glue resume-workflow-run --name cloudtrailtest1 --run-id wr_a07e55f2087afdd415a404403f644a4265278f68b13ba3da08c71924ebe3c3a8 --node-ids wnode_ca1f63e918fb855e063aed2f42ec5762ccf71b80082ae2eb5daeb8052442f2f3 wnode_d1b2563c503078b153142ee76ce545fe5ceef66e053628a786ddd74a05da86fd

    Der Befehl gibt die Ausführungs-ID der fortgesetzten (neuen) Workflow-Ausführung und eine Liste der Knoten aus, die gestartet werden.

    {
        "RunId": "wr_2ada0d3209a262fc1156e4291134b3bd643491bcfb0ceead30bd3e4efac24de9",
        "NodeIds": [
            "wnode_ca1f63e918fb855e063aed2f42ec5762ccf71b80082ae2eb5daeb8052442f2f3"
        ]
    }
    

    Beachten Sie Folgendes: Obwohl der Beispielbefehl resume-workflow-run zwei Knoten aufgeführt hat, die neu gestartet werden sollen, zeigt die Beispielausgabe an, dass nur ein Knoten neu gestartet werden würde. Der Grund dafür ist, dass ein Knoten dem anderen Knoten nachgelagert war und der nachgelagerte Knoten durch den normalen Ablauf des Workflows trotzdem neu gestartet würde.

Hinweise und Einschränkungen für die Fortsetzung von Workflow-Ausführungen

Beachten Sie die folgenden Hinweise und Einschränkungen, wenn Sie Workflow-Ausführungen fortsetzen.

  • Sie können eine Workflow-Ausführung nur fortsetzen, wenn sie sich im Zustand COMPLETED befindet.

    Anmerkung

    Selbst wenn ein oder mehrere Knoten in einer Workflow-Ausführung nicht abgeschlossen werden, wird der Workflow-Ausführungsstatus als COMPLETED angezeigt. Sie sollten das Ausführungsdiagramm überprüfen, um alle Knoten zu ermitteln, die nicht erfolgreich abgeschlossen wurden.

  • Sie können eine Workflow-Ausführung von jedem Auftrags- oder Crawlerknoten fortsetzen, der bei der ursprünglichen Workflow-Ausführung ausgeführt werden sollte. Ein Workflow, der von einem Auslöserknoten ausgeführt wird, kann jedoch nicht fortgesetzt werden.

  • Beim Neustart eines Knotens wird sein Zustand nicht zurückgesetzt. Alle Daten, die teilweise verarbeitet wurden, werden nicht zurückgesetzt.

  • Sie können dieselbe Workflow-Ausführung mehrmals fortsetzen. Wenn eine fortgesetzte Workflow-Ausführung nur teilweise ausgeführt wird, können Sie das Problem beheben und die fortgesetzte Ausführung fortsetzen.

  • Wenn Sie zwei Knoten zum Neustart auswählen und sie voneinander abhängig sind, wird der vorgelagerte Knoten vor dem nachgelagerten Knoten ausgeführt. Im Grunde genommen ist die Auswahl des nachgelagerten Knotens redundant, da er gemäß dem normalen Ablauf des Workflows ausgeführt wird.