Wie kann ich Amazon SNS-Benachrichtigungen erhalten, wenn sich der Status meines AWS Glue-Jobs ändert?

Lesedauer: 4 Minute
0

Ich möchte eine Benachrichtigung erhalten, wenn ein AWS Glue-Job zum Extrahieren, Transformieren und Laden (ETL) erfolgreich ist, fehlschlägt, ein Timeout auftritt oder beendet wird.

Kurzbeschreibung

Gehen Sie wie folgt vor, um eine Benachrichtigung zu erhalten, wenn sich der Status Ihres AWS Glue-Jobs ändert:

  1. Erstellen Sie ein Amazon Simple Notification Service (Amazon SNS)-Thema. Das SNS-Thema sendet Benachrichtigungen an abonnierte Endpunkte oder Clients.
  2. Erstellen Sie eine Amazon EventBridge-Ereignisregel für Änderungen des AWS Glue-Jobstatus, die Sie überwachen möchten.

Behebung

**Hinweis:**Wenn sich der Status Ihres Jobs ändert, generiert AWS Glue-Ereignisse. Weitere Informationen finden Sie unter Status der Ausführung von AWS Glue-Jobs.

Erstellen und abonnieren eines Amazon SNS-Themas

1.Öffnen Sie die Amazon SNS-Konsole.

2.Wählen Sie im Navigationsbereich Themen aus.

3.Wählen Sie Thema erstellen aus.

4.Wählen Sie als Typ die Option Standard aus.

5.Geben Sie einen Themennamen ein. Das Feld Anzeigename ist optional.

6.Wählen Sie Thema erstellen aus.

7.Wählen Sie im Navigationsbereich Subscriptions (Abonnements) aus.

8.Wählen Sie Abonnement erstellen aus.

9.Für Details füllen Sie die folgenden Felder aus:

Wählen Sie für Themen-ARN den ARN des Themas aus, das Sie erstellt haben.

Wählen Sie für Protokoll die Option E-Mail aus.

Geben Sie für Endpunkt die E-Mail-Adresse ein, an die Sie Benachrichtigungen senden möchten.

10.Wählen Sie Abonnement erstellen aus.

Wählen Sie in der Bestätigungs-E-Mail, die Sie erhalten, die Option Abonnement bestätigen aus. Notieren Sie sich das SNS-Thema, das Sie erstellt haben. Verwenden Sie dieses Thema, wenn Sie die EventBridge-Regel erstellen.

EventBridge-Ereignisregel erstellen

1.Öffnen Sie die EventBridge-Konsole.

2.Wählen Sie im Navigationsbereich Regeln und dann Regel erstellen aus.

3.Geben Sie einen Namen für Ihre Regel ein. Behalten Sie die Standardeinstellungen für den Event Bus und den Regeltyp bei, und wählen Sie dann Weiter aus.

4.Wählen Sie als Erstellungsmethode Benutzerdefiniertes Muster (JSON-Editor) aus.

5.Geben Sie im Feld Ereignismuster das folgende Beispiel-Event-Muster ein, um AWS Glue-Statusänderungsereignisse zu erfassen:

{  
    "detail-type": [  
        "Glue Job State Change",  
        "Glue Job Run Status"  
    ],  
    "source": [  
        "aws.glue"  
    ],  
    "detail": {  
        "state": [  
            "FAILED",  
            "SUCCEEDED",  
            "TIMEOUT",  
            "STOPPED",  
            "RUNNING",  
            "STARTING",  
            "STOPPING"  
        ]  
    }  
}

**Tipp:**Wenn Sie keine Benachrichtigung über bestimmte Statusänderungen erhalten möchten, entfernen Sie den entsprechenden Parameter, z. B. RUNNING, aus dem Ereignismuster.

6.Wählen Sie Weiter aus.

7.Wählen Sie für Ziel-Typen den AWS-Service aus.

8.Wählen Sie unter Ziel auswählen die Option SNS-Thema aus.

9.Wählen Sie unter Thema den Namen des SNS-Themas aus, das Sie erstellt haben.

10.Wählen Sie Weiter aus. 

11.(Optional) Geben Sie Tags für die Regel ein, und wählen Sie dann Weiter aus.

12.Wählen Sie Regel erstellen aus.

Weitere Informationen finden Sie unter Erstellen von Ereignismustern und Automatisieren von AWS Glue mit Amazon CloudWatch Events.

Testen Sie Ihre Konfiguration

Um die Ereignisregel und das SNS-Thema zu testen, führen Sie einen AWS Glue-Job aus. Nachdem der Job in den Status wechselt, den Sie in der Ereignisregel angegeben haben, stellen Sie sicher, dass Sie eine E-Mail-Benachrichtigung erhalten.

**Wichtig:**Wenn die Regel nicht ausgeführt wird, stellen Sie sicher, dass das Ereignismuster korrekt ist.

Beispiel

Sie können Ereignisse mit fehlgeschlagener Auftragsausführung aufzeichnen und das Ereignis an ein SNS-Thema senden. Das Folgende ist ein Beispielereignis für einen fehlgeschlagenen Glue-Job:

{  
    "version": "0",  
    "id": "abcdef01-1234-5678-9abc-def012345678",  
    "detail-type": "Glue Job State Change",  
    "source": "aws.glue",  
    "account": "123456789012",  
    "time": "2017-09-07T06:02:03Z",  
    "region": "us-west-2",  
    "resources": [],  
    "detail": {  
        "jobName": "MyJob",  
        "severity": "ERROR",  
        "state": "FAILED",  
        "jobRunId": "jr_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",  
        "message": "JobName:MyJob and JobRunId:jr_0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef failed to run with exception Role arn:aws:iam::123456789012:role/Glue_Role should be given assume role permissions for Glue Service."  
    }  
}

Um alle fehlgeschlagenen Jobs für AWS Glue zu analysieren, führen Sie die vorherigen Schritte aus.

Verwandte Informationen

Wie kann ich eine AWS Lambda-Funktion verwenden, um SNS-Benachrichtigungen zu erhalten, wenn ein AWS Glue-Job bei einem erneuten Versuch fehlschlägt?

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

Ereignisse von AWS-Services

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 6 Monaten