Wie erstelle ich Cron-Jobs auf Amazon EC2-Instances in Elastic Beanstalk-Umgebungen?

Lesedauer: 3 Minute
0

Ich möchte einen Cronjob erstellen, der ein benutzerdefiniertes Skript auf allen Amazon Elastic Compute Cloud (Amazon EC2)-Instances ausführt. Die Amazon-EC2-Instances befinden sich in einer bestehenden AWS Elastic-Beanstalk-Umgebung.

Kurzbeschreibung

Verwenden Sie Elastic Beanstalk-Konfigurationsdateien, die als .ebextensions bezeichnet werden, um Cron-Jobs zu erstellen, die auf allen Amazon EC2-Instances in einer Elastic Beanstalk-Umgebung ausgeführt werden. Erstellen Sie in der ZIP-Datei der Elastic-Beanstalk-Anwendung ein Verzeichnis mit dem Namen .ebextensions. Die ZIP-Datei enthält Konfigurationsdateien, die ausgeführt werden, wenn die Anwendung auf Amazon EC2-Instances bereitgestellt wird.

**Hinweis:**Die Schritte in diesem Beispiel fügen einen Cron-Job hinzu, der auf allen Amazon EC2-Instances in einer Elastic Beanstalk-Umgebung gleichzeitig ausgeführt wird. Wenn Sie eine regelmäßige Aufgabe auf nur einer Instance ausführen wollen, sollten Sie die Datei cron-leaderonly-linux.config für Webumgebungen verwenden. Informationen zur Verwendung der Datei cron-leaderonly-linux-config finden Sie unter cron-leaderonly-linux.config auf der GitHub-Website. Wenn Sie über eine spezielle Arbeitsumgebung verfügen, verwenden Sie regelmäßige Aufgaben.

Lösung

Erstellen oder Aktualisieren Ihrer Konfigurationsdatei

Die Datei cron-linux.config enthält zwei Schlüssel: Dateien und Befehle. Das Kürzel Dateien gibt den Speicherort der Cron-Dateien mycron und myscript.sh auf Elastic-Beanstalk-Instances mit den erforderlichen Dateiberechtigungen an. Das Kürzel Befehle gibt eine Liste von Befehlen an, die auf den Instances ausgeführt werden sollen. Laden Sie die Vorlage cron-linux.config von der Website des AWS-GitHub-Repository herunter. Alternativ können Sie eine vorhandene Konfigurationsdatei anhand des folgenden Beispiels erstellen oder aktualisieren:

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"

**Hinweis:**Beachten Sie bei der Benennung Ihrer Konfigurationsdatei, dass mehrere Konfigurationsdateien im Verzeichnis .ebextensions in alphabetischer Reihenfolge nach Dateinamen ausgeführt werden. Sie können Ihre Konfigurationsdatei cron-linux.config nennen.

Die Datei cron-linux.config erstellt eine Cron-Datei mit dem Namen /etc/cron.d/mycron, die so konfiguriert ist, dass sie jede Minute ein Skript ausführt. Das Skript myscript.sh gibt das Datum aus und wird dann beendet, wenn es ausgeführt wird. Jedes Mal, wenn cron-linux.config während einer Bereitstellung angewendet wird, wird eine Sicherungskopie der Datei /etc/cron.d/mycron mit dem Namen /etc/cron.d/mycron.bak erstellt. Der letzte Befehl in cron-linux.config bereinigt das Verzeichnis /etc/cron.d und entfernt /etc/cron.d/mycron.bak. Weitere Informationen finden Sie unter Erweiterte Umgebungsanpassung mit Konfigurationsdateien (.ebextensions).

Erstellen eines Anwendungsquellpakets

Gehen Sie wie folgt vor, um die Konfigurationsdatei zum Anwendungsquellcode Ihrer Webanwendung hinzuzufügen:

  1. Erstellen Sie im Stammverzeichnis Ihres Anwendungspakets ein Verzeichnis mit dem Namen ebextensions.
  2. Verschieben Sie die Datei cron-linux.config, die Sie erstellt oder aktualisiert haben, in das Verzeichnis .ebextensions.
  3. Erstellen Sie einen ZIP-Ordner für Ihre Anwendungsdateien, der die neue Konfigurationsdatei einschließt.

Das folgende Beispiel zeigt die Struktur des Verzeichnisses .ebextensions und der Datei cron-linux.config in der ZIP-Datei der Anwendung:

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

Verwandte Informationen

Konfiguration von Elastic Beanstalk-Umgebungen

Anpassen von Software auf Linux-Servern

Anpassen von Software auf Windows-Servern

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten