Tutoriel : Écouter AWS Batch EventBridge - AWS Batch

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.

Tutoriel : Écouter AWS Batch EventBridge

Dans ce didacticiel, vous allez configurer une AWS Lambda fonction simple qui écoute les événements liés aux AWS Batch tâches et les enregistre dans un flux de log CloudWatch Logs.

Prérequis

Ce didacticiel suppose que vous disposez d'un environnement de calcul en fonctionnement et une file d'attente prête à accepter des tâches. Si vous ne disposez pas d'un environnement informatique en cours d'exécution ni d'une file d'attente de tâches à partir desquels capturer les événements, suivez les étapes Commencer avec AWS Batch décrites pour en créer une. À la fin de ce didacticiel, vous pouvez éventuellement soumettre une tâche à cette file d'attente de tâches pour vérifier que vous avez correctement configuré votre fonction Lambda.

Étape 1 : Création de la fonction Lambda

Dans cette procédure, vous créez une fonction Lambda simple qui servira de cible aux messages du flux d'AWS Batchévénements.

Pour créer une fonction Lambda cible
  1. Ouvrez la console AWS Lambda à l’adresse https://console.aws.amazon.com/lambda/.

  2. Sélectionnez Create function (Créer une fonction), puis Author from scratch (Créer à partir de zéro).

  3. Sous Nom de la fonction, saisissez batch-event-stream-handler.

  4. Pour Environnement d’exécution, sélectionnez Python 3.8.

  5. Sélectionnez Create function (Créer une fonction).

  6. Dans la section Source du code, modifiez l'exemple de code pour qu'il corresponde à l'exemple suivant :

    import json def lambda_handler(event, _context): # _context is not used del _context if event["source"] != "aws.batch": raise ValueError("Function only supports input from events with a source type of: aws.batch") print(json.dumps(event))

    Il s'agit d'une simple fonction Python 3.8 qui affiche les événements envoyés parAWS Batch. Si tout est correctement configuré, à la fin de ce didacticiel, les détails de l'événement apparaissent dans le flux du journal CloudWatch des journaux associé à cette fonction Lambda.

  7. Choisissez Deploy (Déployer).

Étape 2 : Enregistrer une règle d'événement

Dans cette section, vous allez créer une règle d' EventBridge événement qui capture les événements liés aux tâches qui proviennent de vos AWS Batch ressources. Cette règle capture tous les événements AWS Batch provenant du compte où elle est définie. Les messages de travail eux-mêmes contiennent des informations sur la source de l'événement, y compris la file d'attente des tâches dans laquelle il a été soumis. Vous pouvez utiliser ces informations pour filtrer et trier les événements par programmation.

Note

Si vous utilisez la règle AWS Management Console pour créer un événement, la console ajoute automatiquement les autorisations IAM EventBridge pour appeler votre fonction Lambda. Toutefois, si vous créez une règle d'événement à l'aide duAWS CLI, vous devez accorder des autorisations de manière explicite. Pour plus d'informations, consultez la section Événements et modèles d'événements dans le guide de EventBridge l'utilisateur Amazon.

Pour créer votre EventBridge règle
  1. Ouvrez la EventBridge console Amazon à l'adresse https://console.aws.amazon.com/events/.

  2. Dans le volet de navigation, choisissez Règles.

  3. Choisissez Créer une règle.

  4. Saisissez un nom et une description pour la règle.

    Une règle ne peut pas avoir le même nom qu'une autre règle de la même région et sur le même bus d'événement.

  5. Pour Event bus (Bus d'événement), sélectionnez le bus d'événement que vous souhaitez associer à cette règle. Si vous souhaitez que cette règle corresponde aux événements provenant de votre compte, sélectionnez Bus d'événements par défaut AWS. Lorsqu'un service AWS de votre compte émet un événement, il accède toujours au bus d'événement par défaut de votre compte.

  6. Pour Type de règle, choisissez Règle avec un modèle d’événement.

  7. Choisissez Suivant.

  8. Pour Event source (Source de l'événement), choisissez Other (Autres).

  9. Pour Modèle d'événement, sélectionnez Modèles personnalisés (éditeur JSON).

  10. Collez le modèle d'événement suivants dans la zone de texte.

    { "source": [ "aws.batch" ] }

    Cette règle s'applique à tous vos AWS Batch groupes et à tous les AWS Batch événements. Autrement, vous pouvez créer une règle plus spécifique pour filtrer certains résultats.

  11. Choisissez Suivant.

  12. Pour Types de cibles, choisissez service AWS.

  13. Pour Sélectionner une cible, choisissez la fonction Lambda, puis sélectionnez votre fonction Lambda.

  14. (Facultatif) Pour Additional settings (Paramètres supplémentaires), procédez comme suit :

    1. Pour Maximum age of event (Âge maximal de l'événement), saisissez une valeur comprise entre une minute (00:01) et 24 heures (24:00).

    2. Pour Retry attempts (Nouvelles tentatives), saisissez un nombre compris entre 0 et 185.

    3. Pour la file d'attente de lettres mortes, choisissez si vous souhaitez utiliser une file d'attente Amazon SQS standard comme file d'attente de lettres mortes. EventBridge envoie les événements qui correspondent à cette règle à la file d'attente des lettres mortes s'ils ne sont pas correctement transmis à la cible. Effectuez l’une des actions suivantes :

      • Choisissez None (Aucune) pour ne pas utiliser de file d'attente de lettres mortes.

      • Choisissez Sélectionner une file d'attente Amazon SQS du compte AWS actuel à utiliser en tant que file d'attente de lettres mortes et sélectionnez la file d'attente à utiliser dans la liste déroulante.

      • Choisissez Sélectionner une file d'attente Amazon SQS d'un autre compte AWS en tant que file d'attente de lettres mortes et saisissez l'ARN de la file d'attente à utiliser. Vous devez associer à la file d'attente une politique basée sur les ressources qui EventBridge autorise l'envoi de messages. Pour plus d'informations, consultez la section Octroi d'autorisations à la file d'attente de lettres mortes dans le guide de EventBridge l'utilisateur Amazon.

  15. Choisissez Suivant.

  16. (Facultatif) Saisissez une ou plusieurs balises pour la règle. Pour plus d'informations, consultez les EventBridge balises Amazon dans le guide de EventBridge l'utilisateur Amazon.

  17. Choisissez Suivant.

  18. Consultez les détails de la règle et choisissez Create rule (Créer une règle).

Étape 3 : Testez votre configuration

Vous pouvez désormais tester votre EventBridge configuration en soumettant une tâche à votre file d'attente de tâches. Si tout est correctement configuré, votre fonction Lambda est déclenchée et elle écrit les données de l'événement dans un flux de log CloudWatch Logs pour la fonction.

Pour tester votre configuration
  1. Ouvrez la AWS Batch console à l'adresse https://console.aws.amazon.com/batch/.

  2. Soumettez une nouvelle tâche AWS Batch. Pour plus d'informations, consultez Soumettre une offre d'emploi.

  3. Ouvrez la CloudWatch console à l'adresse https://console.aws.amazon.com/cloudwatch/.

  4. Dans le panneau de navigation, choisissez Logs (Journaux) et sélectionnez le groupe de journaux pour votre fonction Lambda (par exemple, /aws/lambda/my-fonction).

  5. Sélectionnez un flux de journaux pour afficher les données d'événement.