Wie erstelle ich Cron-Jobs auf Amazon EC2-Instances in Elastic Beanstalk-Umgebungen?
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 Instanzen ausgeführt werden sollen. Laden Sie die Vorlage cron-linux.config von der GitHub-Website 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: Mehrere Konfigurationsdateien im Verzeichnis .ebextensions werden in alphabetischer Reihenfolge nach Dateinamen ausgeführt. 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:
- Erstellen Sie im Stammverzeichnis Ihres Anwendungspakets ein Verzeichnis mit dem Namen ebextensions.
- Verschieben Sie die Datei cron-linux.config, die Sie erstellt oder aktualisiert haben, in das Verzeichnis .ebextensions.
- 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:
~/my-app/ |-- .ebextensions/ | |-- cron-linux.config | `-- other.config |-- other application files
Ähnliche Informationen
Konfiguration von Elastic Beanstalk-Umgebungen
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 8 Monaten
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 8 Monaten