Wie kann ich automatisch einen AWS-Glue-Job starten, wenn ein Crawler-Lauf abgeschlossen ist?

Lesedauer: 2 Minute
0

Ich möchte AWS Glue so konfigurieren, dass ein Auftrag automatisch gestartet wird, wenn ein Crawler-Lauf abgeschlossen ist.

Behebung

Sie könnenAWS-Glue-Triggers verwenden, um einen Auftrag zu starten, wenn ein Crawler-Lauf abgeschlossen ist. Die AWS-Glue-Konsole unterstützt jedoch nur Aufträge und keine Crawlers bei der Arbeit mit Triggern. Sie können die AWS-Befehlszeilenschnittstelle (AWS Command Line Interface (AWS CLI)) (AWS CLI) oder die AWS-Glue-API verwenden, um Trigger sowohl für Aufträge als auch für Crawlers zu konfigurieren.

Führen Sie den folgenden AWS-CLI-Befehl aus, um einen Trigger zu erstellen, der einen Auftrag starten kann, wenn ein Crawler-Lauf abgeschlossen ist:

$ aws glue create-trigger --name testTrigger --type CONDITIONAL --predicate 'Logical=AND,Conditions=[{LogicalOperator=EQUALS,CrawlerName=testCrawler,CrawlState=SUCCEEDED}]' --actions JobName=testJob --start-on-creation

**Hinweis:**Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten,stellen Sie sicher, dass Sie die neueste Version der AWS-CLI verwenden.

Sie können einen Trigger auch mit dem Python boto3 SDK erstellen:

import boto3

client = boto3.client("glue")
response = client.create_trigger(
    Name="testTrigger",
    Type="CONDITIONAL",
    Predicate={
        "Logical": "AND",
        "Conditions": [
            {
                "LogicalOperator": "EQUALS",
                "CrawlerName": "testCrawler",
                "CrawlState": "SUCCEEDED",
            },
        ],
    },
    Actions=[
        {"JobName": "testJob"},
    ],
    StartOnCreation=True,
)

Mit einem der vorherigen Ansätze können Sie den TriggertestTrigger erstellen, der den AuftragtestJob starten kann,nachdem der CrawlertestCrawlererfolgreich ausgeführt wurde.

Hinweis:Der CrawlertestCrawlerdarf nur mit einem Trigger gestartet werden. Wenn Sie den Crawler manuell starten, wird der Auftrag nicht durch den Trigger ausgelöst. In AWS Glue werden alle Aufträge oder Crawler nur gestartet, wenn sie durch einen Trigger gestartet werden. Stellen Sie sicher, dass alle Jobs oder Crawler in einer Abhängigkeitskette von den geplanten oder bedarfsgesteuerten Triggern abstammen.

Zusätzlich können Sie eine der folgenden Methoden verwenden:


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren