Buildfile und Procfile - AWS Elastic Beanstalk

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Buildfile und Procfile

Auf einigen Plattformen können Sie anpassen, wie Sie Ihre Anwendung erstellen oder vorbereiten und die Prozesse angeben, die Ihre Anwendung ausführen. Jedes einzelne Plattformthema erwähnt speziell Buildfile und/oder Procfile, wenn die Plattform sie unterstützt. Suchen Sie nach Ihrer spezifischen Plattform unter Elastic Beanstalk-Plattformen.

Syntax und Semantik sind für alle unterstützenden Plattformen identisch und sind wie auf dieser Seite beschrieben. Einzelne Plattformthemen erwähnen die spezifische Verwendung dieser Dateien zum Erstellen und Ausführen von Anwendungen in ihren jeweiligen Sprachen.

Buildfile

Um einen benutzerdefinierten Build- und Konfigurationsbefehl für Ihre Anwendung anzugeben, legen Sie eine Datei mit dem Namen Buildfile im Stammverzeichnis Ihrer Anwendungsquelle ab. Beachten Sie beim Dateinamen die Groß- und Kleinschreibung. Verwenden Sie die folgende Syntax für Ihre Buildfile.

<process_name>: <command>

Der Befehl in Ihrer Buildfile muss folgendem regulären Ausdruck entsprechen: ^[A-Za-z0-9_-]+:\s*[^\s].*$

Elastic Beanstalk überwacht nicht die Anwendung, die mit einer Buildfile ausgeführt wird. Verwenden Sie eine Buildfile für Befehle, die für kurze Zeiträume ausgeführt und nach Abschluss ihrer Aufgaben beendet werden. Verwenden Sie für länger dauernde Anwendungsprozesse, die nicht beendet werden sollten, eine Procfile.

Alle Pfade in der Buildfile sind relativ zum Stammverzeichnis des Quell-Bundle. Im folgenden Beispiel einer Buildfile ist build.sh ein Shell-Skript, das sich im Stammverzeichnis des Quell-Bundle befindet.

Beispiel Buildfile
make: ./build.sh

Wenn Sie benutzerdefinierte Build-Schritte bereitstellen möchten, empfehlen wir Ihnen, für alles, außer für die einfachsten Befehle, anstelle einer Buildfile predeploy-Plattform-Hooks zu verwenden. Plattform-Hooks ermöglichen umfangreichere Skripts und eine bessere Fehlerbehandlung. Plattformhaken werden im nächsten Abschnitt beschrieben.

Procfile

Um benutzerdefinierte Befehle zum Starten und Ausführen der Anwendung anzugeben, legen Sie eine Datei mit dem Namen Procfile im Stammverzeichnis Ihrer Anwendungsquelle ab. Beachten Sie beim Dateinamen die Groß- und Kleinschreibung. Verwenden Sie die folgende Syntax für Ihre Procfile. Sie können einen oder mehrere Befehle angeben.

<process_name1>: <command1> <process_name2>: <command2> ...

Jede Zeile in Ihrer Procfile muss folgendem regulären Ausdruck entsprechen: ^[A-Za-z0-9_-]+:\s*[^\s].*$

Verwenden Sie eine Procfile für länger dauernde Anwendungsprozesse, die nicht beendet werden sollten. Elastic Beanstalk erwartet von Prozessen, die aus der Procfile ausgeführt werden, dass sie kontinuierlich laufen. Elastic Beanstalk überwacht diese Prozesse und startet alle Prozesse, die beendet werden, neu. Für kurz laufende Prozesse verwenden Sie eine Buildfile.

Alle Pfade in der Procfile sind relativ zum Stammverzeichnis des Quell-Bundle. Im folgenden Beispiel definiert Procfile drei Prozesse. Die erste, die im Beispiel web genannt wird, ist die Hauptwebanwendung.

Beispiel Procfile
web: bin/myserver cache: bin/mycache foo: bin/fooapp

Elastic Beanstalk konfiguriert den Proxy-Server so, dass Anforderungen an Ihre Haupt-Web-Anwendung über Port 5000 weitergeleitet werden. Sie können diese Port-Nummer konfigurieren. Eine übliche Verwendung für Procfile besteht darin, diese Portnummer als Befehlsargument an Ihre Anwendung zu übergeben. Einzelheiten zur Proxykonfiguration finden Sie unterReverse-Proxy-Konfiguration.

Elastic Beanstalk erfasst Standardausgabe- und Fehler-Streams von Procfile-Prozessen in Protokolldateien. Elastic Beanstalk benennt die Protokolldateien nach dem Prozess und speichert sie in /var/log. Beispielsweise generiert der web-Prozess aus dem vorherigen Beispiel Protokolle mit den Namen web-1.log und web-1.error.log für stdout bzw. stderr.