Automatisieren von AWS Glue mit EventBridge
Mit Amazon EventBridge können Sie Ihre AWS-Services automatisieren und automatisch auf Systemereignisse reagieren, z. B. bei Problemen mit der Anwendungsverfügbarkeit oder Ressourcenänderungen. Ereignisse von AWS-Services werden in EventBridge nahezu in Echtzeit bereitgestellt. Sie können einfache Regeln schreiben, um anzugeben, welche Ereignisse für Sie interessant sind und welche automatisierten Aktionen durchgeführt werden sollen, wenn sich für ein Ereignis eine Übereinstimmung mit einer Regel ergibt. Die folgenden Aktionen können beispielsweise automatisch ausgelöst werden:
-
Aufrufen einer AWS Lambda-Funktion
-
Aufrufen eines Amazon EC2 Run Command
-
Weiterleiten des Ereignisses an Amazon Kinesis Data Streams
-
Aktivieren eines AWS Step Functions-Zustandsautomaten
-
Benachrichtigen eines Amazon SNS-Themas oder einer Amazon SQS-Warteschlange
Einige Beispiele für die Verwendung von EventBridge mit AWS Glue:
-
Aktivieren einer Lambda-Funktion, wenn ein ETL-Auftrag erfolgreich ist
-
Benachrichtigen eines Amazon-SNS-Themas, wenn ein ETL-Auftrag fehlschlägt
Die folgenden EventBridge-Ereignisse werden von AWS Glue generiert.
-
Ereignisse für
"detail-type":"Glue Job State Change"werden beiSUCCEEDED,FAILED,TIMEOUTundSTOPPEDgeneriert. -
Ereignisse für
"detail-type":"Glue Job Run Status"werden generiert fürRUNNING,STARTINGundSTOPPINGAuftragsläufe, wenn sie die Benachrichtigungsschwelle für die Auftragsverzögerung überschreiten. Sie müssen die Schwellenwerteigenschaft für die Benachrichtigung über einen Auftrag festlegen, um diese Ereignisse zu empfangen.Es wird nur ein Ereignis pro Status der Auftragsausführung generiert, wenn die Schwelle für die Benachrichtigung über die Auftragsverzögerung überschritten wird.
-
Ereignisse für
"detail-type":"Glue Crawler State Change"werden beiStarted,SucceededundFailedgeneriert. Ereignisse für
“detail_type”:“Glue Scheduled Crawler Invocation Failure”werden generiert, wenn der geplante Crawler nicht gestartet werden kann. In den Details der Benachrichtigung:customerIdenthält die Konto-ID des Kunden.crawlerNameenthält den Namen des Crawlers, der nicht gestartet werden konnte.errorMessageenthält die Ausnahmemeldung des Aufruffehlers.
Ereignisse für
“detail_type”:“Glue Auto Statistics Invocation Failure“werden generiert, wenn die Ausführung der Aufgabe für automatisch verwaltete Spaltenstatistiken nicht gestartet werden kann. In den Details der Benachrichtigung:catalogIdenthält die einem Katalog zugeordnete ID.databaseNameenthält den Namen der betroffenen Datenbank.tableNameenthält den Namen der betroffenen Tabelle.errorMessageenthält die Ausnahmemeldung des Aufruffehlers.
Ereignisse für
“detail_type”:“Glue Scheduled Statistics Invocation Failure”werden generiert, wenn die Ausführung der geplanten Aufgabe (cron) für Spaltenstatistiken nicht gestartet werden kann. In den Details der Benachrichtigung:catalogIdenthält die einem Katalog zugeordnete ID.databaseNameenthält den Namen der betroffenen Datenbank.tableNameenthält den Namen der betroffenen Tabelle.errorMessageenthält die Ausnahmemeldung des Aufruffehlers.
Ereignisse für
“detail_type”:“Glue Statistics Task Started”werden generiert, wenn die Ausführung der Spaltenstatistik-Aufgabe gestartet wird.Ereignisse für
“detail_type”:“Glue Statistics Task Succeeded”werden generiert, wenn die Ausführung der Spaltenstatistik-Aufgabe erfolgreich ist.Ereignisse für
“detail_type”:“Glue Statistics Task Failed”werden generiert, wenn die Ausführung der Spaltenstatistik-Aufgabe fehlschlägt.-
Ereignisse für
"detail-type":"Glue Data Catalog Database State Change"werden fürCreateDatabase,DeleteDatabase,CreateTable,DeleteTableundBatchDeleteTablegeneriert. Wenn beispielsweise eine Tabelle erstellt oder gelöscht wird, wird eine Benachrichtigung an EventBridge gesendet. Beachten Sie, dass Sie kein Programm schreiben können, das von der Reihenfolge oder dem Vorhandensein von Benachrichtigungsereignissen abhängig ist, da Benachrichtigungen möglicherweise nicht der Reihe nach erfolgen oder fehlen. Ereignisse werden auf bestmögliche Weise ausgegeben. In den Details der Benachrichtigung:Der Abschnitt
typeOfChangeenthält den Namen der API-Operation.Der Abschnitt
databaseNameenthält den Namen der betroffenen Datenbank.Der Abschnitt
changedTablesenthält bis zu 100 Namen von betroffenen Tabellen pro Benachrichtigung. Wenn Tabellennamen zu lang sind, werden möglicherweise mehrere Benachrichtigungen erstellt.
-
Ereignisse für
"detail-type":"Glue Data Catalog Table State Change"werden fürUpdateTable,CreatePartition,BatchCreatePartition,UpdatePartition,DeletePartition,BatchUpdatePartitionundBatchDeletePartition. generiert. Wenn beispielsweise eine Tabelle oder Partition aktualisiert wird, wird eine Benachrichtigung an EventBridge gesendet. Beachten Sie, dass Sie kein Programm schreiben können, das von der Reihenfolge oder dem Vorhandensein von Benachrichtigungsereignissen abhängig ist, da Benachrichtigungen möglicherweise nicht der Reihe nach erfolgen oder fehlen. Ereignisse werden auf bestmögliche Weise ausgegeben. In den Details der Benachrichtigung:Der Abschnitt
typeOfChangeenthält den Namen der API-Operation.Der Abschnitt
databaseNameenthält den Namen der Datenbank, die die betroffenen Ressourcen enthält.Der Abschnitt
tableNameenthält den Namen der betroffenen Tabelle.Der Abschnitt
changedPartitionsgibt bis zu 100 betroffene Partitionen in einer einzigen Benachrichtigung an. Wenn Partitionsnamen zu lang sind, werden möglicherweise mehrere Benachrichtigungen erstellt.Wenn es beispielsweise zwei Partitionsschlüssel gibt,
YearundMonth, ändert"2018,01", "2018,02"die Partition mit"Year=2018" and "Month=01"und die Partition mit"Year=2018" and "Month=02".{ "version":"0", "id":"abcdef00-1234-5678-9abc-def012345678", "detail-type":"Glue Data Catalog Table State Change", "source":"aws.glue", "account":"123456789012", "time":"2017-09-07T18:57:21Z", "region":"us-west-2", "resources":["arn:aws:glue:us-west-2:123456789012:database/default/foo"], "detail":{ "changedPartitions": [ "2018,01", "2018,02" ], "databaseName": "default", "tableName": "foo", "typeOfChange": "BatchCreatePartition" } }
Weitere Informationen finden Sie im Amazon-CloudWatch-Events-Benutzerhandbuch. Weitere Informationen zu Ereignissen speziell für AWS Glue finden Sie unter AWS Glue-Ereignisse.