Erweitern von Elastic Beanstalk-Linux-Plattformen - 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.

Erweitern von Elastic Beanstalk-Linux-Plattformen

Die AWS Elastic Beanstalk Linux-Plattformen bieten eine Vielzahl von gebrauchsfertiger Funktionen, um die Entwicklung und Ausführung Ihrer Anwendung zu unterstützen. Bei Bedarf können Sie die Plattformen auf verschiedene Arten erweitern, um Optionen zu konfigurieren, Software zu installieren, Dateien und Startbefehle hinzuzufügen, Build- und Laufzeitanweisungen bereitzustellen und Initialisierungsskripts hinzuzufügen, die in verschiedenen Bereitstellungsphasen der Amazon Elastic Compute Cloud (Amazon EC2)-Instances Ihrer Umgebung ausgeführt werden.

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. Weitere Informationen zur Proxy-Konfiguration finden Sie im erweiterbaren Abschnitt unter Reverse-Proxy-Konfiguration auf dieser Seite.

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.

Plattform-Hooks wurden speziell entwickelt, um die Plattform Ihrer Umgebung zu erweitern. Es handelt sich um benutzerdefinierte Skripts und andere benutzerdefinierte ausführbare Dateien, die Sie als Teil des Quellcodes Ihrer Anwendung bereitstellen und die von Elastic Beanstalk in verschiedenen Phasen der Instance-Bereitstellung ausgeführt werden.

Anmerkung

Plattform-Hooks werden auf Amazon Linux AMI-Plattformversionen (vor Amazon Linux 2) nicht unterstützt.

Plattform-Hooks für die Anwendungsbereitstellung

Eine Anwendungsbereitstellung erfolgt, wenn Sie ein neues Quellpaket zur Bereitstellung angeben oder wenn Sie eine Konfigurationsänderung ausführen, für die alle Instances der Umgebung beendet und neu erstellt werden müssen.

Um Plattform-Hooks bereitzustellen, die während einer Anwendungsbereitstellung ausgeführt werden, speichern Sie die Dateien in einem der folgenden Unterverzeichnisse des Verzeichnisses .platform/hooks im Quellpaket.

  • prebuild – Die hier aufgeführten Dateien werden ausgeführt, nachdem die Elastic Beanstalk-Plattform-Engine das Anwendungs-Quell-Bundle heruntergeladen und extrahiert hat und bevor die Anwendung und der Webserver eingerichtet und konfiguriert werden.

    Die prebuild-Dateien werden ausgeführt, nachdem alle Befehle ausgeführt wurden, die im Abschnitt Commands einer beliebigen Konfigurationsdatei gefunden wurden, und bevor Buildfile-Befehle ausgeführt werden.

  • predeploy – Die hier aufgeführten Dateien werden ausgeführt, nachdem die Elastic Beanstalk-Plattform-Engine die Anwendung und den Webserver eingerichtet und konfiguriert hat und bevor sie an ihrem endgültigen Laufzeitspeicherort bereitgestellt werden.

    Die predeploy-Dateien werden nach dem Ausführen von Befehlen im Abschnitt container_commands einer beliebigen Konfigurationsdatei und vor dem Ausführen von Procfile-Befehlen ausgeführt.

  • postdeploy – Die hier aufgeführten Dateien werden ausgeführt, nachdem die Elastic Beanstalk-Plattform-Engine die Anwendung und den Proxyserver bereitgestellt hat.

    Dies ist der letzte Schritt im Bereitstellungsworkflow.

Plattform-Hooks für die Konfigurationsbereitstellung

Eine Konfigurationsbereitstellung erfolgt, wenn Sie Konfigurationsänderungen ausführen, mit denen die Instances der Umgebung aktualisiert, jedoch nicht neu erstellt werden. Die folgenden Optionsaktualisierungen führen zu einer Konfigurationsaktualisierung.

Um Hooks bereitzustellen, die während einer Konfigurationsbereitstellung ausgeführt werden, speichern Sie sie im Verzeichnis .platform/confighooks im Quellpaket. Es werden die gleichen drei Unterverzeichnisse wie für Hooks für die Anwendungsbereitstellung verwendet.

Weitere Informationen zu Plattform-Hooks

Bei Hook-Dateien kann es sich um Binär- oder Skriptdateien handeln, die mit einer #!-Zeile mit dem Interpreter-Pfad beginnen, z. B. #!/bin/bash. Alle Dateien müssen über die Ausführungsberechtigung verfügen. Legen Sie mit chmod +x die Ausführungsberechtigung für Ihre Hook-Dateien fest. Für alle auf Amazon Linux 2023 und Amazon Linux 2 basierenden Plattformversionen, die am oder nach dem 29. April 2022 veröffentlicht wurden, gewährt Elastic Beanstalk automatisch Ausführungsberechtigungen für alle Plattform-Hook-Skripts. In diesem Fall müssen Sie Ausführungsberechtigungen nicht manuell erteilen. Eine Liste dieser Plattformversionen finden Sie in den Linux-Versionshinweisen vom 29. April 2022 im AWS Elastic Beanstalk-Leitfaden für Versionshinweise.

Elastic Beanstalk führt in jedem dieser Verzeichnisse Dateien in lexikographischer Reihenfolge der Dateinamen aus. Alle Dateien werden als root-Benutzer ausgeführt. Das aktuelle Arbeitsverzeichnis (cwd) für Plattform-Hooks ist das Stammverzeichnis der Anwendung. Für prebuild- und predeploy-Dateien ist es das Anwendungs-Staging-Verzeichnis, und für postdeploy-Dateien ist es das aktuelle Anwendungsverzeichnis. Wenn eine der Dateien fehlschlägt (mit einem Exit-Code ungleich Null beendet wird), wird die Bereitstellung abgebrochen und schlägt fehl.

Ein Platform-Hooks-Textskript schlägt möglicherweise fehl, wenn es Zeilenumbruchzeichen (Windows Carriage Return/Line Feed, CRLF) enthält. Wenn eine Datei auf einem Windows-Host gespeichert und dann auf einen Linux-Server übertragen wurde, kann sie Windows-CRLF-Zeilenumbrüche enthalten. Für Plattformen, die am oder nach dem 29. Dezember 2022 veröffentlicht wurden, konvertiert Elastic Beanstalk Windows-CRLF-Zeichen automatisch in Zeilenumbruchzeichen von Linux-Line Feed(LF) in Platform-Hooks-Textdateien. Wenn Ihre Anwendung auf Amazon-Linux-2-Plattformen läuft, die vor diesem Datum veröffentlicht wurden, müssen Sie die Windows-CRLF-Zeichen in Linux-LF-Zeichen konvertieren. Eine Möglichkeit, dies zu erreichen, besteht darin, die Skriptdatei auf einem Linux-Host zu erstellen und zu speichern. Tools, die diese Zeichen konvertieren, sind auch im Internet verfügbar.

Hook-Dateien können auf alle Umgebungseigenschaften zugreifen, die Sie in den Anwendungsoptionen definiert haben, sowie auf die Systemumgebungsvariablen HOME, PATH und PORT.

Um die Werte von Umgebungsvariablen und anderen Konfigurationsoptionen für Ihre Skripts für Plattform-Hooks abzurufen, können Sie das get-config-Dienstprogramm verwenden, das Elastic Beanstalk auf Umgebungs-Instances verwendet. Details hierzu finden Sie unter Plattform-Skript-Tools.

Sie können Konfigurationsdateien zum Verzeichnis .ebextensions des Quellcodes Ihrer Anwendung hinzufügen, um verschiedene Aspekte Ihrer Elastic Beanstalk-Umgebung zu konfigurieren. Mit Konfigurationsdateien können Sie unter anderem Software und andere Dateien auf den Instances Ihrer Umgebung anpassen und Initialisierungsbefehle für die Instances ausführen. Weitere Informationen finden Sie unter Anpassen von Software auf Linux-Servern.

Sie können Konfigurationsoptionen auch mithilfe von Konfigurationsdateien festlegen. Viele der Optionen steuern das Plattformverhalten, und einige dieser Optionen sind plattformspezifisch.

Für Plattformen, die auf Amazon Linux 2 und Amazon Linux 2023 basieren, empfiehlt sich die Verwendung von Buildfile, Procfile und Plattform-Hooks zum Konfigurieren und Ausführen von benutzerdefiniertem Code auf Ihren Umgebungs-Instances während der Instance-Bereitstellung. Diese Mechanismen werden in den vorherigen Abschnitten auf dieser Seite beschrieben. Sie können in .ebextensions-Konfigurationsdateien weiterhin Befehle und Containerbefehle verwenden, aber sie sind nicht mehr so einfach in der Verwendung. Beispielsweise kann das Schreiben von Befehlsskripts in einer YAML-Datei vom Syntaxstandpunkt her eine Herausforderung darstellen. Sie müssen weiterhin .ebextensions-Konfigurationsdateien für jedes Skript verwenden, das einen Verweis auf eine AWS CloudFormation-Ressource benötigt.

Alle Amazon-Linux-2- und Amazon-Linux-2023-Plattformversionen nutzen nginx als standardmäßigen Reverse-Proxy-Server. Die Plattformen Tomcat, Node.js, PHP und Python unterstützen ebenfalls Apache HTTPD als Alternative. Um Apache auf diesen Plattformen auszuwählen, legen Sie die Option ProxyServer im Namespace aws:elasticbeanstalk:environment:proxy auf apache fest. Alle Plattformen ermöglichen eine einheitliche Konfiguration des Proxy-Servers wie in diesem Abschnitt beschrieben.

Anmerkung

Im Fall von Amazon Linux AMI-Plattformversionen (vor Amazon Linux 2) müssen Sie Proxy-Server möglicherweise auf eine andere Art konfigurieren. Diese Legacy-Details finden Sie in den jeweiligen Plattform-Themen in diesem Handbuch.

Elastic Beanstalk konfiguriert den Proxyserver auf den Instances Ihrer Umgebung, um Webdatenverkehr an die Hauptwebanwendung über die Stamm-URL der Umgebung weiterzuleiten, z. B. http://my-env.elasticbeanstalk.com.

Standardmäßig wird der Proxy von Elastic Beanstalk so konfiguriert, dass alle Anforderungen an Port 80 an Ihre primäre Webanwendung unter Port 5000 weitergeleitet werden. Sie können diese Portnummer konfigurieren, indem Sie die PORT-Umgebungseigenschaft mithilfe des Namespace aws:elasticbeanstalk:application:environment in einer Konfigurationsdatei festlegen, wie im folgenden Beispiel gezeigt.

option_settings: - namespace: aws:elasticbeanstalk:application:environment option_name: PORT value: <main_port_number>

Weitere Informationen zum Festlegen von Umgebungsvariablen für Ihre Anwendung finden Sie unter Optionseinstellungen.

Ihre Anwendung sollte den Port überwachen, der dafür im Proxy konfiguriert ist. Wenn Sie den Standardport mithilfe der Umgebungseigenschaft PORT ändern, kann der Code durch Lesen des Wertes der Umgebungsvariablen PORT darauf zugreifen. Rufen Sie beispielsweise os.Getenv("PORT") in Go oder System.getenv("PORT") in Java auf. Wenn Sie Ihren Proxy so konfigurieren, dass Datenverkehr an mehrere Anwendungsprozesse gesendet wird, können Sie mehrere Umgebungseigenschaften konfigurieren und deren Werte sowohl in der Proxykonfiguration als auch in Ihrem Anwendungscode verwenden. Eine weitere Möglichkeit besteht darin, den Port-Wert als Befehlsargument in der Procfile an den Prozess zu übergeben. Weitere Informationen dazu erhalten Sie, indem Sie den Abschnitt Buildfile und Procfile auf dieser Seite erweitern.

Konfigurieren von nginx

Elastic Beanstalk verwendet nginx als Standard-Reverse-Proxy, um die Anwendung dem Elastic Load Balancing-Load Balancer zuzuweisen. Elastic Beanstalk bietet eine nginx-Standardkonfiguration, die Sie erweitern oder gänzlich mit einer eigenen Konfiguration überschreiben können.

Anmerkung

Wenn Sie eine .conf-Konfigurationsdatei von nginx hinzufügen oder bearbeiten, müssen Sie sie als UTF-8 codieren.

Um die nginx-Standardkonfiguration von Elastic Beanstalk zu erweitern, fügen Sie .conf-Konfigurationsdateien zum Ordner .platform/nginx/conf.d/ im Quell-Bundle der Anwendung hinzu. Die nginx-Konfiguration von Elastic Beanstalk fügt .conf-Dateien automatisch zu diesem Ordner hinzu.

~/workspace/my-app/ |-- .platform | `-- nginx | `-- conf.d | `-- myconf.conf `-- other source files

Um die nginx-Standardkonfiguration von Elastic Beanstalk vollständig zu überschreiben, fügen Sie bei .platform/nginx/nginx.conf eine Konfiguration in das Quellpaket ein.

~/workspace/my-app/ |-- .platform | `-- nginx | `-- nginx.conf `-- other source files

Wenn Sie die nginx-Konfiguration von Elastic Beanstalk überschreiben, fügen Sie folgende Zeile zu nginx.conf hinzu, damit die Elastic-Beanstalk-Konfigurationen für Erweiterte Zustandsberichte und Überwachung, automatische Anwendungszuweisungen und statische Dateien einbezogen werden.

include conf.d/elasticbeanstalk/*.conf;

Konfigurieren von Apache HTTPD

Die Plattformen Tomcat, Node.js, PHP und Python ermöglichen Ihnen die Auswahl des Apache-HTTPD-Proxy-Servers als Alternative zu nginx. Dies ist nicht die Standardoption. Im folgenden Beispiel wird Elastic Beanstalk für die Verwendung von Apache HTTPD konfiguriert.

Beispiel .ebextensions/httpd-proxy.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache

Sie können die Elastic Beanstalk-Apache-Standardkonfiguration mit Ihren zusätzlichen Konfigurationsdateien erweitern. Alternativ können Sie die Apache-Standardkonfiguration von Elastic Beanstalk vollständig überschreiben.

Um die Apache-Standardkonfiguration von Elastic Beanstalk zu erweitern, fügen Sie .conf-Konfigurationsdateien zum Ordner .platform/httpd/conf.d im Quell-Bundle der Anwendung hinzu. Die Apache-Konfiguration von Elastic Beanstalk fügt .conf-Dateien automatisch zu diesem Ordner hinzu.

~/workspace/my-app/ |-- .ebextensions | -- httpd-proxy.config |-- .platform | -- httpd | -- conf.d | -- port5000.conf | -- ssl.conf -- index.jsp

Beispielsweise wird mit der folgenden Apache 2.4-Konfiguration ein Listener auf Port 5000 hinzugefügt:

Beispiel .platform/httpd/conf.d/port5000.conf
listen 5000 <VirtualHost *:5000> <Proxy *> Require all granted </Proxy> ProxyPass / http://localhost:8080/ retry=0 ProxyPassReverse / http://localhost:8080/ ProxyPreserveHost on ErrorLog /var/log/httpd/elasticbeanstalk-error_log </VirtualHost>

Um die Apache-Standardkonfiguration von Elastic Beanstalk vollständig zu überschreiben, fügen Sie bei .platform/httpd/conf/httpd.conf eine Konfiguration in das Quellpaket ein.

~/workspace/my-app/ |-- .ebextensions | -- httpd-proxy.config |-- .platform | `-- httpd | `-- conf | `-- httpd.conf `-- index.jsp
Anmerkung

Wenn Sie die Apache-Konfiguration von Elastic Beanstalk überschreiben, fügen Sie folgende Zeilen zu httpd.conf hinzu, damit die Elastic-Beanstalk-Konfigurationen für Erweiterte Zustandsberichte und Überwachung, automatische Anwendungszuweisungen und statische Dateien einbezogen werden.

IncludeOptional conf.d/elasticbeanstalk/*.conf
Anmerkung

Wenn Sie Ihre Elastic-Beanstalk-Anwendung zu einer Amazon-Linux-2- oder Amazon-Linux-2023-Plattform migrieren, lesen Sie auch die Informationen unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

Anwendungsbeispiel mit Erweiterungen

Im folgenden Beispiel wird ein Anwendungs-Quell-Bundle mit mehreren Erweiterungsfunktionen veranschaulicht, die von Amazon-Linux-2- und Amazon-Linux-2023-Plattformen für Elastic Beanstalk unterstützt werden: eine Procfile, .ebextensions-Konfigurationsdateien, benutzerdefinierte Hooks und Proxy-Konfigurationsdateien.

~/my-app/ |-- web.jar |-- Procfile |-- readme.md |-- .ebextensions/ | |-- options.config # Option settings | `-- cloudwatch.config # Other .ebextensions sections, for example files and container commands `-- .platform/ |-- nginx/ # Proxy configuration | |-- nginx.conf | `-- conf.d/ | `-- custom.conf |-- hooks/ # Application deployment hooks | |-- prebuild/ | | |-- 01_set_secrets.sh | | `-- 12_update_permissions.sh | |-- predeploy/ | | `-- 01_some_service_stop.sh | `-- postdeploy/ | |-- 01_set_tmp_file_permissions.sh | |-- 50_run_something_after_app_deployment.sh | `-- 99_some_service_start.sh `-- confighooks/ # Configuration deployment hooks |-- prebuild/ | `-- 01_set_secrets.sh |-- predeploy/ | `-- 01_some_service_stop.sh `-- postdeploy/ |-- 01_run_something_after_config_deployment.sh `-- 99_some_service_start.sh
Anmerkung

Einige dieser Erweiterungen werden auf Amazon Linux AMI-Plattformversionen (vor Amazon Linux 2) nicht unterstützt.

Instance-Bereitstellungs-Workflow

Anmerkung

Die Informationen in diesem Abschnitt gelten nicht für die Plattformzweige ECS auf Amazon Linux 2 und Amazon Linux 2023. Weitere Informationen finden Sie im folgenden Abschnitt, Workflow zur Instance-Bereitstellung für ECS auf Amazon Linux 2 und höher.

Da die Plattform Ihrer Umgebung auf viele Arten erweitert werden kann, ist es hilfreich, den Ablauf zu verstehen, wenn Elastic Beanstalk eine Instance bereitstellt oder eine Bereitstellung für eine Instance ausführt. Das folgende Diagramm zeigt diesen gesamten Bereitstellungsworkflow. Es zeigt die verschiedenen Phasen in einer Bereitstellung und die Schritte, die von Elastic Beanstalk in jeder Phase durchgeführt werden.

Hinweise
  • Das Diagramm zeigt nicht den vollständigen Satz von Schritten, die Elastic Beanstalk während der Bereitstellung auf Umgebungs-Instances ausführt. Wir stellen dieses Diagramm zur Veranschaulichung bereit, um Ihnen die Reihenfolge und den Kontext für die Ausführung Ihrer Anpassungen zu liefern.

  • Der Einfachheit halber zeigt das Diagramm nur die .platform/hooks/*-Hook-Unterverzeichnisse (für Anwendungsbereitstellungen) und nicht die .platform/confighooks/*-Hook-Unterverzeichnisse (für Konfigurationsbereitstellungen). Hooks in den zuletzt genannten Unterverzeichnissen werden während der gleichen Schritte ausgeführt wie die Hooks in den Unterverzeichnissen, die im Diagramm gezeigt werden.

Reihenfolge, in der Erweiterungen auf einer Instance in einer Umgebung mit einer Amazon Linux 2-Plattformversion ausgeführt werden

In der folgenden Liste werden die Bereitstellungsphasen und -schritte beschrieben.

  1. Anfängliche Schritte

    Elastic Beanstalk lädt und extrahiert Ihre Anwendung. Nach jedem dieser Schritte führt Elastic Beanstalk einen Erweiterbarkeitsschritt aus.

    1. Führt Befehle aus, die im Abschnitt Befehle: einer beliebigen Konfigurationsdatei gefunden werden.

    2. Führt alle ausführbaren Dateien im Verzeichnis .platform/hooks/prebuild des Quellpakets aus (.platform/confighooks/prebuild für eine Konfigurationsbereitstellung).

  2. Konfiguration

    Elastic Beanstalk konfiguriert Ihre Anwendung und den Proxy-Server.

    1. Führt die Befehle aus, die in der Buildfile in Ihrem Quell-Bundle gefunden wurden.

    2. Kopiert Ihre benutzerdefinierten Proxy-Konfigurationsdateien, sofern sich welche im Verzeichnis .platform/nginx Ihres Quell-Bundles befinden, an ihrem Laufzeitspeicherort.

    3. Führt Befehle aus, die im Abschnitt container_commands: einer beliebigen Konfigurationsdatei gefunden wurden.

    4. Führt alle ausführbaren Dateien im Verzeichnis .platform/hooks/predeploy des Quellpakets aus (.platform/confighooks/predeploy für eine Konfigurationsbereitstellung).

  3. Bereitstellen

    Elastic Beanstalk stellt Ihre Anwendung und den Proxy-Server bereit und führt sie aus.

    1. Führt den Befehl aus, der in der Procfile-Datei in Ihrem Quell-Bundle gefunden wurde.

    2. Führt den Proxy-Server mit den benutzerdefinierten Proxy-Konfigurationsdateien aus, falls vorhanden, oder erneut aus.

    3. Führt alle ausführbaren Dateien im Verzeichnis .platform/hooks/postdeploy des Quellpakets aus (.platform/confighooks/postdeploy für eine Konfigurationsbereitstellung).

Workflow zur Instance-Bereitstellung für ECS auf Amazon Linux 2 und höher

Im vorherigen Abschnitt werden die unterstützten Erweiterungsfunktionen in den Phasen des Workflows zur Anwendungsbereitstellung beschrieben. Es gibt einige Unterschiede bei den Docker-Plattformzweigen ECS auf Amazon Linux 2 und höher. In diesem Abschnitt wird erläutert, wie diese Konzepte für diesen spezifischen Plattformzweig gelten.

Da die Plattform Ihrer Umgebung auf viele Arten erweitert werden kann, ist es hilfreich, den Ablauf zu verstehen, wenn Elastic Beanstalk eine Instance bereitstellt oder eine Bereitstellung für eine Instance ausführt. Das folgende Diagramm zeigt diesen gesamten Bereitstellungs-Workflow für eine Umgebung, die auf den Plattformzweigen ECS auf Amazon Linux 2 und ECS auf Amazon Linux 2023 basiert. Es zeigt die verschiedenen Phasen in einer Bereitstellung und die Schritte, die von Elastic Beanstalk in jeder Phase durchgeführt werden.

Im Gegensatz zu dem im vorherigen Abschnitt beschriebenen Workflow unterstützt die Bereitstellungs-Konfigurations-Phase die folgenden Erweiterungsfunktionen nicht: Buildfile-Befehle, Procfile-Befehle, Reverse-Proxy-Konfiguration.

Hinweise
  • Das Diagramm zeigt nicht den vollständigen Satz von Schritten, die Elastic Beanstalk während der Bereitstellung auf Umgebungs-Instances ausführt. Wir stellen dieses Diagramm zur Veranschaulichung bereit, um Ihnen die Reihenfolge und den Kontext für die Ausführung Ihrer Anpassungen zu liefern.

  • Der Einfachheit halber zeigt das Diagramm nur die .platform/hooks/*-Hook-Unterverzeichnisse (für Anwendungsbereitstellungen) und nicht die .platform/confighooks/*-Hook-Unterverzeichnisse (für Konfigurationsbereitstellungen). Hooks in den zuletzt genannten Unterverzeichnissen werden während der gleichen Schritte ausgeführt wie die Hooks in den Unterverzeichnissen, die im Diagramm gezeigt werden.

Die Reihenfolge der Ausführung von Erweiterungen auf einer Instance in einer Umgebung für den Plattformzweig ECS auf Amazon Linux 2 und höher

Die folgende Liste enthält die Schritte des Bereitstellungs-Workflows.

  1. Führt alle ausführbaren Dateien aus, die im appdeploy/pre-Verzeichnis unter EBhooksDir gefunden werden.

  2. Führt alle ausführbaren Dateien im Verzeichnis .platform/hooks/prebuild des Quellpakets aus (.platform/confighooks/prebuild für eine Konfigurationsbereitstellung).

  3. Führt alle ausführbaren Dateien im Verzeichnis .platform/hooks/predeploy des Quellpakets aus (.platform/confighooks/predeploy für eine Konfigurationsbereitstellung).

  4. Führt alle ausführbaren Dateien aus, die im appdeploy/enact-Verzeichnis unter EBhooksDir gefunden werden.

  5. Führt alle ausführbaren Dateien aus, die im appdeploy/post-Verzeichnis unter EBhooksDir gefunden werden.

  6. Führt alle ausführbaren Dateien im Verzeichnis .platform/hooks/postdeploy des Quellpakets aus (.platform/confighooks/postdeploy für eine Konfigurationsbereitstellung).

Der Verweis auf EBhooksDir repräsentiert den Pfad des Plattform-Hooks-Verzeichnisses. Verwenden Sie zum Abrufen des Verzeichnispfad-Namens das Skripttool get-config in der Befehlszeile Ihrer Umgebungs-Instance wie gezeigt:

$ /opt/elasticbeanstalk/bin/get-config platformconfig -k EBhooksDir