Comment puis-je recevoir des notifications Amazon SNS lorsqu'une tâche AWS Glue change d'état ?

Lecture de 4 minute(s)
0

Je souhaite recevoir une notification lorsqu'une tâche d'extraction, transformation et chargement (ETL) AWS Glue réussit, échoue, expire ou s'arrête.

Brève description

Pour recevoir une notification lorsqu'une tâche AWS Glue change de statut, procédez comme suit :

  1. Créez une rubrique Amazon Simple Notification Service (Amazon SNS). La rubrique SNS envoie des messages aux clients ou aux points de terminaison abonnés.
  2. Créez une règle d'événement Amazon EventBridge pour les changements d'état des tâches AWS Glue que vous souhaitez surveiller.

Résolution

Remarque : lorsque le statut d'une tâche change, AWS Glue génère des événements. Pour en savoir plus, consultez la page Statuts d'exécution des tâches AWS Glue.

Créer une rubrique Amazon SNS et s'y abonner

1.    Ouvrez la console Amazon SNS.

2.    Dans le volet de navigation, choisissez Rubriques.

3.    Choisissez Créer une rubrique.

4.    Pour le champ Type, choisissez Standard.

5.    Saisissez un nom de rubrique. Le champ Nom d'affichage est facultatif.

6.    Choisissez Créer une rubrique.

7.    Dans le volet de navigation, choisissez Abonnements.

8.    Choisissez Créer un abonnement.

9.     Dans la section Détails, remplissez les champs suivants :

        Pour le champ ARN de la rubrique, choisissez l'ARN de la rubrique que vous avez créée.

        Pour le champ Protocole, choisissez E-mail.

        Pour le champ Point de terminaison, saisissez l'adresse e-mail à laquelle vous souhaitez envoyer des notifications.

10.    Choisissez Créer un abonnement.

Dans l'e-mail de confirmation d'abonnement que vous recevez, choisissez Confirmer l'abonnement. Notez la rubrique SNS que vous avez créée. Utilisez cette rubrique lorsque vous créez la règle EventBridge.

Créer une règle d'événement EventBridge

1.    Ouvrez la console EventBridge.

2.    Dans le volet de navigation, choisissez Règles, puis Créer une règle.

3.    Saisissez un nom pour la règle. Conservez les paramètres Bus d'événements et Type de règle par défaut, puis choisissez Suivant.

4.    Pour le champ Méthode de création, choisissez Modèle personnalisé (éditeur JSON).

5.    Dans le champ Modèle d'événement, saisissez l'exemple de modèle d'événement suivant pour capturer les événements de changement d'état AWS Glue :

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

Conseil : si vous ne souhaitez pas recevoir de notification pour des changements d'état spécifiques, supprimez le paramètre correspondant, par exemple EN COURS D'EXÉCUTION, du modèle d'événement.

6.    Choisissez Suivant.

7.    Pour le champ Types de cibles, choisissez Service AWS.

8.    Pour le champ Sélectionner une cible, choisissez Rubrique SNS.

9.    Pour le champ Rubrique, choisissez le nom de la rubrique SNS que vous avez créée.

10.    Choisissez Suivant

11.    (Facultatif) Saisissez des balises pour la règle, puis choisissez Suivant.

12.    Choisissez Créer une règle.

Pour en savoir plus, consultez les pages Création de modèles d'événements et Automatisation d'AWS Glue avec Amazon CloudWatch Events.

Tester votre configuration

Pour tester la règle de l'événement et la rubrique SNS, exécutez une tâche AWS Glue. Une fois la tâche passée à l'état que vous spécifiez dans la règle d'événement, vérifiez que vous recevez une notification par e-mail.

Important : si la règle n'est pas en cours d'exécution, assurez-vous que le modèle d'événement est correct.

Exemple

Vous pouvez capturer les événements d'échec d'exécution de tâche et les envoyer à une rubrique SNS. Voici un exemple d'événement d'échec d'une tâche Glue :

{  
    "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."  
    }  
}

Afin d'analyser toutes les tâches AWS Glue ayant échoué, effectuez les étapes précédentes.

Informations connexes

Comment puis-je utiliser une fonction AWS Lambda pour recevoir des alertes SNS lorsqu'une tâche AWS Glue échoue à une nouvelle tentative ?

Comment puis-je démarrer automatiquement une tâche AWS Glue à la fin de l'exécution d'un crawler ?

Événements des services AWS

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 7 mois