Warum wird mein AWS Glue-Workflow nicht ausgelöst?

Lesedauer: 5 Minute
0

Ich habe einen AWS Glue-Workflow erstellt, aber er startet nicht. Oder einige der zu meinem AWS Glue-Workflow gehörenden Jobs oder Crawler werden nicht ausgeführt.

Kurzbeschreibung

Wenn Ihr AWS Glue-Workflow oder seine Komponenten nicht ausgelöst werden, bestätigen Sie die folgenden Punkte:

  • Wenn ein geplanter Trigger als Quell-Trigger verwendet wird, bestätigen Sie sich, dass er aktiviert ist. Achten Sie darauf, dass der Zeitplan in koordinierter Weltzeit (UTC) angegeben ist und dass der cron-Ausdruck alle erforderlichen Felder enthält.
  • Wenn ein ereignisbasierter Trigger als Quell-Trigger verwendet wird, dann bestätigen Sie, dass die Amazon EventBridge-Regel korrekt ist, eingeschaltet und mit dem Workflow verknüpft ist. Bestätigen Sie, dass die Rolle, die zum Hinzufügen des Workflows als Ziel verwendet wird, über die erforderlichen Berechtigungen verfügt, um Ereignisse an AWS Glue weiterzuleiten.
  • Wenn eine externe Komponente den Quellentrigger auslöst, bestätigen Sie, dass die externe Komponente nicht fehlerhaft funktioniert.
  • Stellen Sie sicher, dass die Prädikatsbedingung, die zum Auslösen einer Komponente verwendet wird, nicht von einem Agenten außerhalb des Workflows erfüllt wird.
  • Die Komponente kann Teil einer Abhängigkeitskette sein. Stellen Sie sicher, dass die Upstream-Jobs/Crawler als Teil desselben Workflows durch einen einzigen Quell-Trigger gestartet werden.

Behebung

Der Workflow startet nicht mit einem zeitbasierten Trigger

Wenn der Quell-Trigger des Workflows geplant ist, überprüfen Sie Folgendes:

  • Vergewissern Sie sich, dass sich der Trigger im **Zustand **AKTIVIERT und nicht im **Zustand **ERSTELLT befindet. Wenn sich der Trigger nicht im **Zustand **AKTIVIERT befindet, aktivieren Sie den Trigger manuell.
  • Stellen Sie sicher, dass der im Zeitplan für einen geplanten Trigger verwendete Cron-Ausdruck in UTC ist. Achten Sie darauf, dass die Felder im cron-Ausdruck mit der Umrechnung der lokalen Zeitzone in UTC übereinstimmen. Überprüfen Sie auch, ob der Cron-Ausdruck alle erforderlichen Felder im richtigen Format enthält. Weitere Informationen finden Sie unter Zeit-basierte Zeitpläne für Jobs und Crawler.

Der Workflow startet nicht mit einem On-Demand-Trigger

Ihr Quell-Trigger könnte ein On-Demand-Trigger sein, der von einer vorgelagerten Entität über den API-Aufruf StartWorkflowRun ausgelöst wird. Bei diesem Anwendungsfall muss sichergestellt werden, dass die aufrufende Einheit korrekt funktioniert.

Der Workflow startet nicht mit einem bedingten Trigger

Stellen Sie sicher, dass die Prädikatbedingungen im Trigger nicht von einem Agenten außerhalb des Workflows erfüllt werden. Wenn die Bedingungen von einem externen Agenten erfüllt werden, wird der Trigger nicht ausgelöst. Bedingte Trigger werden nur gestartet, wenn das beobachtete Ereignis durch einen Trigger ausgelöst wird.

Nehmen wir zum Beispiel an, dass die folgenden Bedingungen erfüllt sind:

  • Sie haben einen Workflow mit einem Job JOB_MAIN, der durch den Trigger TEST_TR ausgelöst wird.
  • Der Trigger TEST_TR hängt vom Abschluss eines anderen Jobs JOB_DEP ab, der nicht Teil des aktuellen Workflows ist.

In diesem Fall wird der Job JOB_MAIN nicht ausgelöst, selbst wenn JOB_DEP erfolgreich abgeschlossen wurde und die Prädikatlogik des Triggers TEST_TR erfüllt ist. Der Job wird nicht entlassen, weil die Prädikatsbedingung von einem Agent erfüllt wird, der nicht Teil desselben Workflows ist.

Der Workflow startet nicht mit einem ereignisbasierten Trigger

Vielleicht haben Sie EventBridge (auch bekannt als Amazon CloudWatch Events) konfiguriert, um Ihre Workflows zu starten. Wenn Sie dieses Setup verwenden und feststellen, dass der Quell-Trigger nicht ausgelöst wird, überprüfen Sie Folgendes:

  • Wenn Sie Amazon Simple Storage Service (Amazon S3) Datenereignisse als Quelle verwenden, vergewissern Sie sich, dass Sie einen Pfad für das AWS-Konto ordnungsgemäß erstellt haben. Überprüfen Sie dann, ob die Ereignisse für den betreffenden S3-Bucket in AWS CloudTrail protokolliert werden.
  • Überprüfen Sie die EventBridge-Regel, um zu bestätigen, dass die Parameter eventSource, **eventName und ****requestParameters **den Erwartungen entsprechen.
  • Bestätigen Sie, dass die EventBridge-Regel an den richtigen Workflow-Ziel-ARN angehängt ist.
  • Bestätigen Sie, dass der EventBridge-Regelstatus **ENABLED **ist.
  • Bestätigen Sie, dass der RoleArn, mit dem die Regel an das Workflow-Ziel angehängt wurde, die Richtlinien CloudWatchEventsBuiltInTargetExecutionAccessund CloudWatchEventsInvocationAccess zugewiesen wurden. Bestätigen Sie dann, dass die IAM-Berechtigungen ausreichen, um 'glue:NotifyEvent' für den Workflow auszuführen. Das folgende Beispiel zeigt die mindestens erforderliche AWS Glue-Richtlinie:
{
    "Version": "2012-10-17",
    "Statement": [{
        "Effect": "Allow",
        "Action": ["glue:NotifyEvent"],
        "Resource": ["arn:aws:glue:<region>:<account-id>:workflow/<workflow-name>"]
    }]
}

Workflow startet nicht für einen Komponenten-Job oder Crawler, der Teil einer Abhängigkeits-Kette ist

Prüfen Sie, ob der konstituierende Job oder Crawler von der Fertigstellung eines vorgelagerten Jobs oder Crawlers abhängt, der ebenfalls durch einen Trigger gestartet wurde. Ein abhängiger Job oder Crawler wird nur gestartet, wenn der abgeschlossene Job oder Crawler durch einen Trigger gestartet wurde. Stellen Sie sicher, dass alle Jobs oder Crawler in einer Abhängigkeitskette von einem einzigen geplanten oder On-Demand-Trigger abstammen.

Nehmen wir zum Beispiel an, dass diese Bedingungen erfüllt sind:

  • Ihr Workflow beginnt mit einem Trigger namens TEST_TR1, der den den Job namens JOB_1 startet.
  • Ein weiterer Trigger namens **TEST_TR2 **hängt vom Abschluss von **JOB_1 ab, **um den Job namens JOB_2 zu starten.

In diesem Fall **startet **TEST_TR2 **JOB_2, **wenn die Prädikatbedingungen für TEST_TR2 erfüllt sind.

Wenn jedoch**JOB_1 auf Anforderung ausgeführt und nicht von **TEST_TR1 gestartet wird, dann startet **TEST_TR2 **JOB_2 **nicht, **selbst wenn die Prädikatbedingungen für TEST_TR2 erfüllt sind.


Verwandte Informationen

AWS Glue-Triggers

Workflow-Einschränkungen in AWS Glue

Starten eines AWS Glue-Workflows mit einem Amazon EventBridge-Ereignis

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren