Automatisation de AWS Glue avec CloudWatch Events - AWS Glue

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.

Automatisation de AWS Glue avec CloudWatch Events

Vous pouvez utiliser Amazon CloudWatch Events pour automatiser vos services AWS et répondre automatiquement aux événements système tels que les problèmes de disponibilité des applications ou les changements de ressources. Les événements des services AWS sont fournis à CloudWatch Events presque en temps réel. 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. Les actions pouvant être déclenchées automatiquement sont les suivantes :

  • Appel d'une fonction AWS Lambda

  • Appel de la fonctionnalité Exécuter la commande d'Amazon EC2

  • Relais de l'événement à Amazon Kinesis Data Streams

  • Activation d'une machine d'état AWS Step Functions

  • Notification d'une rubrique Amazon SNS ou d'une file d'attente Amazon SQS

Voici quelques exemples d'utilisation de CloudWatch Events avec AWS Glue :

  • Activation d'une fonction Lambda lorsqu'une tâche ETL réussit

  • Notification d'une rubrique Amazon SNS lorsqu'une tâche ETL échoue

Les événements CloudWatch Events suivants sont générés par AWS Glue.

  • Les événements pour "detail-type":"Glue Job State Change" sont générés pour SUCCEEDED, FAILED, TIMEOUT et STOPPED.

  • Les événements pour "detail-type":"Glue Job Run Status" sont générés pour les exécutions de tâcheRUNNING, STARTING et STOPPING lorsqu'ils dépassent le seuil de notification de dépassement de délai de tâche. Vous devez définir la propriété du seuil de notification des retards de tâche pour recevoir ces événements.

    Un seul événement est généré par statut d'exécution de tâche lorsque le seuil de notification de retard de tâche est dépassé.

  • Les événements pour "detail-type":"Glue Crawler State Change" sont générés pour Started, Succeeded et Failed.

  • Les événements pour "detail-type":"Glue Data Catalog Database State Change" sont générés pour CreateDatabase, DeleteDatabase, CreateTable, DeleteTable et BatchDeleteTable. Par exemple, si une table est créée ou supprimée, une notification est envoyée à CloudWatch Events. Notez que vous ne pouvez pas écrire un programme en fonction de la présence d'événements de notification ou de leur ordre, car il peut ne pas y en avoir ou ils peuvent ne pas être dans l'ordre défini. Les événements sont générés sur la base du meilleur effort. Voici les informations figurant dans la notification :

    • Le champ typeOfChange contient le nom de l'opération d'API.

    • Le champ databaseName indique le nom de la base de données concernée.

    • Le champ changedTables contient jusqu'à 100 noms de tables concernées par notification. Lorsque les noms de table sont longs, plusieurs notifications peuvent être créées.

  • Les événements pour "detail-type":"Glue Data Catalog Table State Change" sont générés pour UpdateTable, CreatePartition, BatchCreatePartition, UpdatePartition, DeletePartition, BatchUpdatePartition et BatchDeletePartition. Par exemple, si une table ou une partition est mise à jour, une notification est envoyée à CloudWatch Events. Notez que vous ne pouvez pas écrire un programme en fonction de la présence d'événements de notification ou de leur ordre, car il peut ne pas y en avoir ou ils peuvent ne pas être dans l'ordre défini. Les événements sont générés sur la base du meilleur effort. Voici les informations figurant dans la notification :

    • Le champ typeOfChange contient le nom de l'opération d'API.

    • Le champ databaseName indique le nom de la base de données dont les ressources sont concernées.

    • Le champ tableName indique le nom de la table concernée.

    • Le champ changedPartitions spécifie jusqu'à 100 partitions concernées dans une notification. Lorsque les noms de partition sont longs, plusieurs notifications peuvent être créées.

      Par exemple, s'il existe deux clés de partition, Year et Month, alors "2018,01", "2018,02" modifie la partition si "Year=2018" and "Month=01" et si "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" } }

Pour plus d'informations, consultez le Guide de l'utilisateur Amazon CloudWatch Events. Pour des événements spécifiques à AWS Glue, consultez Événements AWS Glue.