Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Automatiser l'EMR sans serveur avec Amazon EventBridge
Vous pouvez l'utiliser Amazon EventBridge pour automatiser les événements du système Services AWS et y répondre automatiquement, tels que les problèmes de disponibilité des applications ou les modifications de ressources. EventBridge fournit un flux d'événements système en temps quasi réel qui décrivent l'évolution de vos AWS ressources. Vous pouvez écrire des règles simples pour indiquer quels événements vous intéressent et les actions automatisées à effectuer quand un événement correspond à une règle. Avec EventBridge, vous pouvez automatiquement :
-
Invoquer une fonction AWS Lambda
-
Transmettre un événement à Amazon Kinesis Data Streams
-
Activer une machine à AWS Step Functions états
-
Notifier une rubrique Amazon SNS ou une file d'attente Amazon SQS
Par exemple, lorsque vous utilisez EventBridge EMR Serverless, vous pouvez activer une AWS Lambda fonction lorsqu'une tâche ETL réussit ou notifier une rubrique Amazon SNS en cas d'échec d'une tâche ETL.
EMR Serverless émet quatre types d'événements :
-
Événements de changement d'état de l'application : événements qui génèrent chaque changement d'état d'une application. Pour plus d'informations sur les états des applications, reportez-vous àÉtats de l'application.
-
Événements de changement d'état d'exécution de la tâche : événements qui génèrent chaque changement d'état d'une tâche exécutée. Pour plus d'informations sur, reportez-vous àÉtats d'exécution de la tâche.
-
Événements de nouvelle tentative d'exécution d'une tâche : événements qui émettent chaque nouvelle tentative d'exécution d'une tâche à partir des versions 7.1.0 et supérieures d'Amazon EMR Serverless.
Événements de mise à jour de l'utilisation des ressources de la tâche : événements qui émettent des mises à jour de l'utilisation des ressources pour une tâche exécutée à des intervalles de près de 30 minutes.
Exemples d'événements EMR Serverless EventBridge
Les événements signalés par EMR Serverless ont une valeur aws.emr-serverless attribuée àsource, comme dans les exemples suivants.
Événement de changement d'état des applications
L'exemple d'événement suivant montre une application dans CREATING cet état.
{ "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 } } }
Événement de changement d'état de Job Run
L'exemple d'événement suivant montre une tâche exécutée qui passe d'un SCHEDULED état à l'RUNNINGautre.
{ "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" } }
Événement de nouvelle tentative d'exécution des tâches
Voici un exemple d'événement de nouvelle tentative d'exécution d'une tâche.
{ "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" } }
Mise à jour sur l'utilisation des ressources professionnelles
L'exemple d'événement suivant montre la mise à jour finale de l'utilisation des ressources pour une tâche qui est passée à l'état terminal après son exécution.
{ "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 } } }
Le champ StartEdAt ne sera présent que si la tâche est passée à l'état en cours d'exécution.