View a markdown version of this page

Automatisierung von EMR Serverless mit Amazon EventBridge - Amazon EMR

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Automatisierung von EMR Serverless mit Amazon EventBridge

Sie können Amazon EventBridge es verwenden, um Systemereignisse wie Probleme mit der Anwendungsverfügbarkeit oder Ressourcenänderungen zu automatisieren AWS-Services und automatisch darauf zu reagieren. EventBridge liefert nahezu in Echtzeit einen Stream von Systemereignissen, die Änderungen an Ihren AWS Ressourcen beschreiben. 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. Mit EventBridge können Sie automatisch:

  • Eine AWS Lambda Funktion aufrufen

  • Leiten Sie ein Ereignis an Amazon Kinesis Data Streams weiter

  • Aktivieren Sie eine AWS Step Functions Zustandsmaschine

  • Ein Amazon SNS-Thema oder eine Amazon SQS-Warteschlange benachrichtigen

Wenn Sie beispielsweise EMR Serverless verwenden EventBridge , können Sie eine AWS Lambda Funktion aktivieren, wenn ein ETL-Auftrag erfolgreich ist, oder ein Amazon SNS-Thema benachrichtigen, wenn ein ETL-Job fehlschlägt.

EMR Serverless sendet vier Arten von Ereignissen aus:

  • Ereignisse zur Änderung des Anwendungszustands — Ereignisse, die jede Zustandsänderung einer Anwendung auslösen. Weitere Informationen zu Anwendungszuständen finden Sie unterStatus der Anwendung.

  • Ereignisse, die den Status eines Auftragslaufs ändern — Ereignisse, die jede Statusänderung eines Auftragslaufs auslösen. Weitere Informationen dazu finden Sie unterStatus von Aufgabenausführungen.

  • Ereignisse zur Wiederholung von Auftragsausführungen — Ereignisse, die bei jedem erneuten Versuch eines Auftrags auslösen, der von Amazon EMR Serverless Versionen 7.1.0 und höher ausgeführt wird.

  • Ereignisse zur Aktualisierung der Auftragsressourcenauslastung — Ereignisse, bei denen Aktualisierungen zur Ressourcenauslastung für einen Auftrag ausgegeben werden, der in Intervallen von fast 30 Minuten ausgeführt wird.

Beispiele für serverlose EMR-Ereignisse EventBridge

Ereignisse, die von EMR Serverless gemeldet werden, haben den Wert aws.emr-serverless zugewiesensource, wie in den folgenden Beispielen.

Ereignis „Änderung des Anwendungsstatus“

Das folgende Beispielereignis zeigt eine Anwendung im CREATING Status.

{
    "version": "0",
    "id": "9fd3cf79-1ff1-b633-4dd9-34508dc1e660",
    "detail-type": "EMR Serverless Application State Change",
    "source": "aws.emr-serverless",
    "account": "123456789012",
    "time": "2022-05-31T21:16:31Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "applicationId": "00f1cbsc6anuij25",
        "applicationName": "3965ad00-8fba-4932-a6c8-ded32786fd42",
        "arn": "arn:aws:emr-serverless:us-east-1:111122223333:/applications/00f1cbsc6anuij25",
        "releaseLabel": "emr-6.6.0",
        "state": "CREATING",
        "type": "HIVE",
        "createdAt": "2022-05-31T21:16:31.547953Z",
        "updatedAt": "2022-05-31T21:16:31.547970Z",
        "autoStopConfig": {
            "enabled": true,
            "idleTimeout": 15
        },
        "autoStartConfig": {
            "enabled": true
        }
    }
}

Ereignis zur Statusänderung beim Ausführen des Auftrags

Das folgende Beispielereignis zeigt eine Auftragsausführung, die von einem SCHEDULED RUNNING Bundesstaat zum anderen übergeht.

{
    "version": "0",
    "id": "00df3ec6-5da1-36e6-ab71-20f0de68f8a0",
    "detail-type": "EMR Serverless Job Run State Change",
    "source": "aws.emr-serverless",
    "account": "123456789012",
    "time": "2022-05-31T21:07:42Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "jobRunId": "00f1cbn5g4bb0c01",
        "applicationId": "00f1982r1uukb925",
        "arn": "arn:aws:emr-serverless:us-east-1:123456789012:/applications/00f1982r1uukb925/jobruns/00f1cbn5g4bb0c01",
        "releaseLabel": "emr-6.6.0",
        "state": "RUNNING",
        "previousState": "SCHEDULED",
        "createdBy": "arn:aws:sts::123456789012:assumed-role/TestRole-402dcef3ad14993c15d28263f64381e4cda34775/6622b6233b6d42f59c25dd2637346242",
        "updatedAt": "2022-05-31T21:07:42.299487Z",
        "createdAt": "2022-05-31T21:07:25.325900Z"
    }
}

Ereignis zur Wiederholung der Auftragsausführung

Das Folgende ist ein Beispiel für ein Wiederholungsereignis bei der Auftragsausführung.

{
    "version": "0",
    "id": "00df3ec6-5da1-36e6-ab71-20f0de68f8a0",
    "detail-type": "EMR Serverless Job Run Retry",
    "source": "aws.emr-serverless",
    "account": "123456789012",
    "time": "2022-05-31T21:07:42Z",
    "region": "us-east-1",
    "resources": [],
    "detail": {
        "jobRunId": "00f1cbn5g4bb0c01",
        "applicationId": "00f1982r1uukb925",
        "arn": "arn:aws:emr-serverless:us-east-1:123456789012:/applications/00f1982r1uukb925/jobruns/00f1cbn5g4bb0c01",
        "releaseLabel": "emr-6.6.0",
        "createdBy": "arn:aws:sts::123456789012:assumed-role/TestRole-402dcef3ad14993c15d28263f64381e4cda34775/6622b6233b6d42f59c25dd2637346242",
        "updatedAt": "2022-05-31T21:07:42.299487Z",
        "createdAt": "2022-05-31T21:07:25.325900Z",
        //Attempt Details
        "previousAttempt": 1,
        "previousAttemptState": "FAILED",
        "previousAttemptCreatedAt": "2022-05-31T21:07:25.325900Z",
        "previousAttemptEndedAt": "2022-05-31T21:07:30.325900Z",
        "newAttempt": 2,
        "newAttemptCreatedAt": "2022-05-31T21:07:30.325900Z"
    }
}

Aktualisierung der Auslastung der Arbeitsressourcen

Das folgende Beispielereignis zeigt die letzte Aktualisierung der Ressourcenauslastung für einen Job, der nach der Ausführung in den Endzustand übergegangen ist.

{
    "version": "0",
    "id": "00df3ec6-5da1-36e6-ab71-20f0de68f8a0",
    "detail-type": "EMR Serverless Job Resource Utilization Update",
    "source": "aws.emr-serverless",
    "account": "123456789012",
    "time": "2022-05-31T21:07:42Z",
    "region": "us-east-1",
    "resources": [
        "arn:aws:emr-serverless:us-east-1:123456789012:/applications/00f1982r1uukb925/jobruns/00f1cbn5g4bb0c01"
    ],
    "detail": {
        "applicationId": "00f1982r1uukb925",
        "jobRunId": "00f1cbn5g4bb0c01",
        "attempt": 1,
        "mode": "BATCH",
        "createdAt": "2022-05-31T21:07:25.325900Z",
        "startedAt": "2022-05-31T21:07:26.123Z",
        "calculatedFrom": "2022-05-31T21:07:42.299487Z",
        "calculatedTo": "2022-05-31T21:07:30.325900Z",
        "resourceUtilizationFinal": true,
        "resourceUtilizationForInterval": {
            "vCPUHour": 0.023,
            "memoryGBHour": 0.114,
            "storageGBHour": 0.228
        },
        "billedResourceUtilizationForInterval": {
            "vCPUHour": 0.067,
            "memoryGBHour": 0.333,
            "storageGBHour": 0
        },
        "totalResourceUtilization": {
            "vCPUHour": 0.023,
            "memoryGBHour": 0.114,
            "storageGBHour": 0.228
        },
        "totalBilledResourceUtilization": {
            "vCPUHour": 0.067,
            "memoryGBHour": 0.333,
            "storageGBHour": 0
        }
    }
}

Das Feld StartedAt ist nur dann vorhanden, wenn der Job in den Status „Wird ausgeführt“ übergegangen ist.