Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
Wie kann ich eine Lambda-Funktion verwenden, um automatisch einen AWS-Glue-Job zu starten, wenn ein Crawler-Lauf abgeschlossen ist?
Ich möchte eine AWS-Lambda-Funktion verwenden, um automatisch einen AWS-Glue-Job zu starten, wenn ein Crawler-Lauf abgeschlossen ist.
Kurzbeschreibung
Um einen Job zu starten, wenn ein Crawler-Lauf abgeschlossen ist, erstelle eine AWS-Lambda-Funktion und eine Amazon-EventBridge-Regel.
Hinweis: Du kannst zudem AWS-Glue-Workflows verwenden, um automatisch einen Job zu starten, wenn ein Crawler-Lauf abgeschlossen ist. Weitere Informationen findest du unter Wie verwende ich AWS-Glue-Workflows, um automatisch einen Auftrag zu starten, wenn ein Crawler-Lauf abgeschlossen ist?
Lösung
Voraussetzungen:
Du musst über Folgendes verfügen:
- AWS Glue Extract, Transform, Load (ETL)-Job
- AWS-Glue-Crawler
- AWS Identity and Access Management (IAM)-Rolle für Lambda mit der Berechtigung zur Ausführung von AWS-Glue-Jobs. Richte beispielsweise eine serviceverknüpfte Rolle für Lambda ein, an die die Richtlinie AWSGlueServiceRole, die an die Rolle angehängt war, angehängt ist.
Erstellen der Lambda-Funktion
Führe die folgenden Schritte aus:
- Öffne die Lambda-Konsole.
- Wähle Funktion erstellen aus.
- Gib auf der Seite Funktion erstellen die folgenden Informationen ein:
Wähle Ohne Vorgabe erstellen aus.
Gib unter Funktionsname den Namen deiner Funktion ein.
Wähle für Laufzeit eine Python-Option aus.
Verwenden Sie für Architektur die Standardoption x86_64.
Wähle unter Standardausführungsrolle ändern für Ausführungsrolle die Option Eine vorhandene Rolle verwenden aus.
Wähle für Bestehende Rolle die IAM-Rolle aus, die über die Berechtigung zur Ausführung von AWS-Glue-Jobs verfügt. - Wähle Funktion erstellen aus.
- Gib auf der Seite mit den Funktionsdetails unter Codequelle den folgenden Code ein:
Hinweis: Ersetze MyTestJob durch den Namen des AWS-Glue-ETL-Jobs.# Set up loggingimport json import os import logging logger = logging.getLogger() logger.setLevel(logging.INFO) # Import Boto 3 for AWS Glue import boto3 client = boto3.client('glue') # Variables for the job: glueJobName = "MyTestJob" # Define Lambda function def lambda_handler(event, context): logger.info('## INITIATED BY EVENT: ') logger.info(event['detail']) response = client.start_job_run(JobName = glueJobName) logger.info('## STARTED GLUE JOB: ' + glueJobName) logger.info('## GLUE JOB RUN ID: ' + response['JobRunId']) return response - Wähle unter Codequelle die Option Testen aus.
- Öffne die AWS-Glue-Konsole und dann bestätige, dass der Job gestartet wurde.
Führe den AWS Glue-Crawler aus, um die Lambda-Funktion zu testen. Überprüfe dann die Ressourcenliste für die Jobs werden ausgeführt des AWS Glue-ETL-Jobs. Der Ausführungsstatus zeigt Wird gestartet oder Wird ausgeführt an.
Die EventBridge-Regel erstellen
Führe die folgenden Schritte aus:
- Öffnen Sie die EventBridge-Konsole.
- Wähle im Navigationsbereich Regeln und dann Regel erstellen aus.
- Gib einen Namen und eine Beschreibung für die Regel ein und wähle dann Weiter aus.
- Verwende die Standardwerte für Ereignisquelle und Beispielereignis.
- Wähle im Abschnitt Ereignismuster die Option Benutzerdefinierte Muster aus (JSON-Editor).
- Gib den folgenden Code in das Feld Ereignismuster ein:
Hinweis: Ersetze MyTestCrawl durch den Namen des AWS-Glue-Crawlers.{ "detail-type": [ "Glue Crawler State Change" ], "source": [ "aws.glue" ], "detail": { "crawlerName": [ "MyTestCrawl" ], "state": [ "Succeeded" ] } } - Gib für Ziele auswählen die folgenden Informationen ein:
Wähle für Ziel die Lambda-Funktion aus.
Wähle als **Funktion ** deine Lambda-Funktion aus. - Wähle Erstellen aus.
Führe den AWS-Glue-Crawler aus, um die Lambda-Funktion und die EventBridge-Regel zu testen. Überprüfe dann die Ressourcenliste für die Jobs werden ausgeführt des AWS Glue-ETL-Jobs. Der Ausführungsstatus zeigt Wird gestartet oder Wird ausgeführt an.
Ähnliche Informationen
Regeln erstellen, die auf Ereignisse in Amazon EventBridge reagieren

Relevanter Inhalt
AWS OFFICIALAktualisiert vor einem Jahr