Comment ajouter des tâches cron au niveau de travail de mon environnement Elastic Beanstalk et résoudre les problèmes liés aux tâches cron qui ne seront pas ajoutées ?

Date de la dernière mise à jour : 07/05/2021

Je souhaite ajouter des tâches cron au niveau de travail de mon environnement AWS Elastic Beanstalk.

Résolution

Ajouter des tâches cron à un niveau de travail

Pour ajouter une tâche cron au niveau de travail de votre environnement Elastic Beanstalk, ajoutez un fichier cron.yaml à la racine de votre code source. Par exemple :

version: 1
cron:
 — name: "schedule"
   url: "/schedule"
   schedule: "0 */12 * * *"

Remarque : dans l'exemple précédent, la tâche cron nommée schedule déclenche une demande POST (PUBLIER) au point de terminaison /schedule dans l'environnement de travail toutes les 12 heures.

Si vos tâches cron n'apparaissent toujours pas dans le niveau de travail, suivez les étapes de la section Troubleshoot issues with cron jobs (Résolution de problèmes liés aux tâches cron).

Résoudre les problèmes liés aux tâches cron

1.    Dans le flux d'événements de votre environnement Elastic Beanstalk, recherchez un événement semblable à celui-ci :

Successfully loaded 1 scheduled tasks from cron.yaml

2.    Dans votre fichier /var/log/eb-commandprocessor.log recherchez un journal semblable à celui-ci :

{"status":"SUCCESS","api_version":"1.0","results":[{"status":"SUCCESS","msg":"","returncode":0,"events":[{"msg":"Successfully loaded 1 scheduled tasks from cron.yaml.","severity":"INFO","timestamp":1562000593}]}]}

3.    Dans votre fichier /var/log/aws-sqsd/default.log vérifiez que le démon d'Amazon Simple Queue Service (Amazon SQS) est en cours d'exécution et interroge la bonne file d'attente.

Si le démon d'Amazon SQS démarre correctement, vous devriez voir des journaux semblables à celui-ci :

2019-07-04T14:11:21Z init: initializing aws-sqsd 2.4 (2018-09-06)
2019-07-04T14:11:21Z pollers: start initializting poller timer...
2019-07-04T14:11:21Z pollers: start auto running poller...
2019-07-04T14:11:21Z start: polling https://sqs.us-west-2.amazonaws.com/111122223333/yourWorkerQueue

4.    Dans votre fichier /var/log/aws-sqsd/default.log vérifiez la demande HTTP POST que le démon d'Amazon SQS envoie à http://localhost/ sur le port 80. Cette demande est envoyée lorsque le démon interroge un élément de file d'attente.

Vous devriez voir un message semblable à celui-ci :

2019-07-05T13:54:52Z message: sent to http://localhost:80/

5.    Pour confirmer que les messages sont remis à la file d'attente SQS, vérifiez la métrique NumberOfMessagesReceived correspondant à la file d'attente associée à l'environnement de travail.

Remarque : vous pouvez également envoyer manuellement un message à la file d'attente pour vérifier la tâche cron.

6.    Pour appeler la tâche planifiée manuellement, exécutez la commande suivante :

curl -d param1=value1 -d param2=value2 -H "Content-Type: application/json" -X POST http://localhost/scheduled-task-path

L'indicateur -d (--data) peut contenir les données que vous essayez de transmettre à la tâche cron.

Remarque : les tâches périodiques ne fonctionnent pas pour les environnements de travail configurés avec des files d'attente FIFO Amazon SQS.


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


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