Comment utiliser AWS Batch comme cible pour ma règle EventBridge ?

Date de la dernière mise à jour : 19/01/2022

Je veux utiliser AWS Batch comme cible pour ma règle Amazon EventBridge.

Solution

L'exemple suivant montre comment configurer Amazon EventBridge pour envoyer une tâche AWS Batch lorsqu'un nouveau compartiment Amazon Simple Storage Service (Amazon S3) est créé.

Créer une définition de tâche

1.    Ouvrez la console AWS Batch.

2.    Dans la barre de navigation, sélectionnez votre région AWS.

3.    Dans le volet de navigation, choisissez Job definitions (Définitions des tâches), puis choisissez Create (Créer).

4.    Pour Job definition name (Nom de la définition de tâche), entrez un nom unique pour votre définition de tâche.

Remarque : vous pouvez utiliser jusqu’à 128 lettres (majuscules et minuscules), chiffres, tirets et traits de soulignement dans votre nom unique.

5.    Pour Container image (Image de conteneur), entrez amazonlinux.

6.    Pour Command (Commande), entrez ce qui suit :

echo Ref::S3bucket

7.    Pour vCPU, entrez 2.

8.    Pour Memory (MiB) (Mémoire (Mio)), entrez 500.

9.    Choisissez Next (Suivant), puis choisissez Create (Créer).

Obtenez le nom ARN de la file d’attente de votre tâche et de votre définition de tâche

1.    Ouvrez la console AWS Batch.

2.    Dans le volet de navigation, sélectionnez Job queues (Files d’attente des tâches).

3.    Choisissez votre file d’attente des tâches.

4.    Dans la section Job queue details (Détails de la file d'attente de tâche), copiez l'ARN de la file d'attente, puis enregistrez-le pour l'utiliser ultérieurement.

5.    Dans le volet de navigation, choisissez Job definitions (Définitions de tâche), puis choisissez la définition de tâche que vous avez créée précédemment.

6.    Dans la section Job definition details (Détails de la définition de tâche), copiez l'ARN de la définition de tâche, puis enregistrez-le pour l'utiliser ultérieurement.

Activer la journalisation des événements de données CloudTrail pour les objets dans un compartiment S3

Pour déclencher des tâches AWS Batch sur des opérations au niveau des objets Amazon S3 (par exemple, lorsqu'un nouvel objet est chargé dans un compartiment existant), consultez Activation de la journalisation des événements CloudTrail pour les compartiments et objets S3.

Créer la règle EventBridge

1.    Ouvrez la console EventBridge.

2.    Sélectionnez Create rule (Créer une règle).

3.    Saisissez un Nom pour votre règle. Vous pouvez éventuellement saisir une Description.

4.    Dans Define pattern (Définir le modèle), sélectionnez Event pattern (Modèle d'événement).

5.    Choisissez Pre-defined pattern by service (Modèle prédéfini par service).

6.    Pour Service provider (Fournisseur de services), choisissez AWS.

7.    Pour Service name (Nom du service), choisissez Simple Storage Service (S3).

8.    Pour Event type (Type d'événement), choisissez Bucket-Level API Call via CloudTrail (Appel d'API au niveau du compartiment via CloudTrail).

9.    Choisissez Any operation (N'importe quelle opération).

10.    Dans la section Select targets (Sélectionner les cibles), choisissez Batch job queue (File d'attente de tâche Batch) dans la liste déroulante Target (Cible).

11.    Pour Job queue (File d'attente de tâche), collez l'ARN de la file d'attente de tâche que vous avez copié précédemment.

12.    Pour Job definition (Définition de tâche), collez dans l'ARN de la définition de tâche que vous avez copié précédemment.

13.    Pour Job name (Nom de la tâche), saisissez le nom de la tâche AWS Batch.

14.    Dans la section Configure input (Configurer l'entrée), choisissez Input Transformer (Transformateur d'entrée).

15.    Dans la première zone d'entrée, saisissez les valeurs de compartiment S3 à envoyer lorsque l'événement est déclenché :

{"S3BucketNameValue":"$.detail.requestParameters.bucketName"}

Remarque : remplacez S3BucketNameValue par votre propre valeur.

16.    Dans la deuxième zone d'entrée, saisissez la structure de Parameters (Paramètres) qui doit être transmise à la tâche Batch :

{"Parameters" : {"S3bucket": S3BucketNameValue}}

Remarque : remplacez S3BucketNameValue par votre propre valeur. Remplacez S3bucket par le nom du paramètre que vous souhaitez définir dans votre tâche AWS Batch.

17.    Choisissez Create a new role for this specific resource (Créer un rôle pour cette ressource spécifique) ou Use existing role (Utiliser un rôle existant).

Remarque : si vous choisissez un rôle existant, ce rôle doit avoir une politique AWS Identity and Access Management (IAM) qui autorise l'action batch:SubmitJob.

18.    Sélectionnez Create (Créer).

Tester la règle que vous avez créée

1.    Ouvrez la console Amazon S3.

2.    Choisissez Create Bucket (Créer un compartiment).

3.    Dans le champ Bucket name (Nom du compartiment), tapez un nom unique conforme DNS pour votre nouveau compartiment.

4.    Pour Region (Région), choisissez la même région que celle où vous avez créé la règle EventBridge.

5.    Choisissez Create (Créer).

Vérifier vos journaux

1.    Ouvrez la console AWS Batch.

2.    Dans le volet de navigation, choisissez Jobs (Tâches).

3.    Choisissez votre tâche avec le statut SUCCEEDED (SUCCÈS).

4.    Sur la page Job details (Détails de la tâche), dans la section Attempts (Tentatives), choisissez View logs (Afficher les journaux). Le journal affiche le nom de votre compartiment dans la console CloudWatch.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?