Comment puis-je créer des tâches cron sur des instances Amazon EC2 dans des environnements Elastic Beanstalk ?

Lecture de 3 minute(s)
0

Je souhaite créer une tâche cron qui exécute un script personnalisé sur toutes les instances Amazon Elastic Compute Cloud (Amazon EC2). Les instances Amazon EC2 se trouvent dans un environnement AWS Elastic Beanstalk existant.

Brève description

À l'aide des fichiers de configuration Elastic Beanstalk, appelés .ebextensions, créez des tâches cron qui s'exécutent sur toutes les instances Amazon EC2 dans un environnement Elastic Beanstalk. Dans le fichier zip de l'application Elastic Beanstalk, créez un répertoire nommé .ebextensions. Le fichier .zip contient les fichiers de configuration qui s'exécutent lorsque l'application est déployée sur des instances Amazon EC2.

Remarque : les étapes de cet exemple ajoutent une tâche cron qui s'exécute simultanément sur toutes les instances Amazon EC2 dans un environnement Elastic Beanstalk. Si vous devez exécuter une tâche périodique sur une seule instance, utilisez le fichier cron-leaderonly-linux.config pour les environnements Web. Pour utiliser le fichier cron-leaderonly-linux-config, reportez-vous à cron-leaderonly-linux.config sur le site Web de GitHub. Si vous disposez d'un environnement de travail dédié, utilisez des tâches périodiques.

Résolution

Créer ou mettre à jour un fichier de configuration

Le fichier cron-linux.config contient deux clés : les fichiers et les commandes. La clé fichiers indique l'emplacement des fichiers cron mycron et myscript.sh sur les instances Elastic Beanstalk avec les autorisations de fichier requises. La clécommandes indique une liste de commandes à exécuter sur les instances. Téléchargez le modèle cron-linux.config depuis le site Web du référentiel AWS GitHub. Vous pouvez également créer ou mettre à jour un fichier de configuration existant en vous basant sur cet exemple :

files:    "/etc/cron.d/mycron":
        mode: "000644"
        owner: root
        group: root
        content: |
            * * * * * root /usr/local/bin/myscript.sh

   "/usr/local/bin/myscript.sh":
        mode: "000755"
        owner: root
        group: root
        content: |
            #!/bin/bash

            date > /tmp/date
            # Your actual script content

            exit 0

commands:
    remove_old_cron:
        command: "rm -f /etc/cron.d/mycron.bak"

Remarque : lorsque vous nommez votre fichier de configuration, pensez que plusieurs fichiers de configuration dans le répertoire .ebextensions sont exécutés par ordre alphabétique et par nom de fichier. Vous pouvez nommer votre fichier de configuration cron-linux.config.

Le fichier cron-linux.config crée un fichier cron nommé /etc/cron.d/mycron configuré pour exécuter un script toutes les minutes. Le script myscript.sh affiche la date, puis s'arrête lorsqu'il s'exécute. Chaque fois que le fichier cron-linux.config s'applique pendant les déploiements, une sauvegarde du fichier /etc/cron.d/mycron nommée /etc/cron.d/mycron.bak est créée. La dernière commande du fichier cron-linux.config nettoie le répertoire /etc/cron.d et supprime le fichier /etc/cron.d/mycron.bak. Pour plus d'informations, reportez-vous à Personnalisation d'environnement avancée avec fichiers de configuration (.ebextensions).

Créer un bundle source d'applications

Pour ajouter le fichier de configuration au code source de votre application Web, procédez comme suit :

  1. À la racine du dossier de votre application, créez un répertoire nommé .ebextensions.
  2. Déplacez le fichier cron-linux.config que vous avez créé ou mis à jour dans le dossier .ebextensions.
  3. Créez un dossier zip pour les fichiers de votre application et incluez le nouveau fichier de configuration.

Cet exemple montre la structure du répertoire .ebextensions et du fichier cron-linux.config dans le fichier zip de l'application :

|-- .ebextensions|        |-- cron-linux.config
|        |-- other .config files
|-- other application files

Informations connexes

Configuration des environnements Elastic Beanstalk

Personnalisation des logiciels sur des serveurs Linux

Personnalisation des logiciels sur des serveurs Windows

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