Comment puis-je transmettre des paramètres d'un déclencheur planifié dans CloudWatch à une tâche AWS Batch ?

Date de la dernière mise à jour : 15/05/2020

Je souhaite transmettre les paramètres d'un déclencheur planifié dans Amazon CloudWatch à une tâche AWS Batch.

Brève description

Dans AWS Batch, vos paramètres sont des espaces réservés pour les variables que vous définissez dans la section commande de votre définition de tâche AWS Batch. Ces espaces réservés vous permettent de :

  • utiliser la même définition de tâche pour plusieurs tâches qui utilisent le même format ;
  • modifier par programmation les valeurs dans la commande au moment de l'envoi.

Il est conseillé de définir votre paramètre en tant que paire clé-valeur. Par exemple :

"Parameters" : {"test" : "abc"}

Si vous enregistrez une définition de tâche ou soumettez une tâche, utilisez des espaces réservés de substitution de paramètres dans le champ de commande des propriétés de conteneur de la tâche. Par exemple :

"Command" : [ "echo” "Ref::test" ]

Lorsque vous soumettez la tâche précédente, l'argument Ref::test de la commande du conteneur est remplacé par la valeur par défaut (abc).

Vous pouvez définir une valeur de paramètre différente pour la même clé de paramètre lorsque vous soumettez une tâche. Par exemple :

"Parameters" : {"test" : "hello"}

Lorsque vous soumettez la tâche précédente, l'argument Ref::test de la commande du conteneur est remplacé par la valeur personnalisée (hello) que vous avez définie lors de l'envoi de la tâche.

Solution

Configurer votre environnement AWS Batch

1.    Créez un environnement de calcul.

2.    Créez une file d'attente de tâches, puis associez-la à l'environnement de calcul que vous avez créé lors de l'étape 1.

3.    Créez une définition de tâche avec une image (par exemple : nginx).

Créer une règle Amazon CloudWatch Events

1.    Ouvrez la console CloudWatch.

2.    Dans le volet de navigation, sélectionnez Événements.

3.    Sélectionnez Démarrer.

4.    Dans la section Source d'événement, sélectionnez Modèle d'événement ou Planifier en fonction de vos besoins.

5.    Pour Cible, sélectionnez Ajouter une cible.

6.    Dans la liste des cibles, sélectionnez File d'attente des tâches Batch.

7.    Pour File d'attente des tâches, saisissez le nom de la file d'attente des tâches que vous avez créée précédemment.

8.    Pour Définition de tâche, saisissez le nom de la définition de tâche que vous avez créée précédemment.

9.    Dans Nom de la tâche, saisissez un nom pour votre tâche.

10.    Développez la section Configurer l'entrée et sélectionnez Constant (texte JSON).

11.    Dans la zone de texte qui s'affiche, saisissez ce qui suit :

{"Parameters": {"name":"test"}, "ContainerOverrides": { "Command": ["echo","Ref::name"] } }

La règle envoie une tâche AWS Batch lorsque CloudWatch appelle la règle. Si la tâche aboutit, vos journaux CloudWatch impriment « test » aux emplacements suivants :

Log Group: /aws/batch/job 
Log Stream: yourJobDefinitionName/default/your-ecs-task-ID

Important : vous devez utiliser la casse mixte pour le texte JSON dans vos règles CloudWatch Events.

12.    Sélectionnez Configurer les détails, puis suivez le reste des étapes de l'assistant de configuration pour créer votre règle.


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

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?