Verwenden der Elastic Beanstalk Node.js-Plattform - 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.

Verwenden der Elastic Beanstalk Node.js-Plattform

In diesem Thema wird beschrieben, wie Sie Ihre Node.js -Anwendungen auf Elastic Beanstalk konfigurieren, erstellen und ausführen.

AWS Elastic Beanstalk unterstützt eine Reihe von Plattformzweigen für verschiedene Versionen der Programmiersprache Node.js. Eine vollständige Liste finden Sie unter Node.js im Dokument AWS Elastic Beanstalk Platforms.

Elastic Beanstalk bietet Konfigurationsoptionen, mit denen Sie die Software anpassen können, die auf dem EC2 Instanzen in Ihrer Elastic Beanstalk Beanstalk-Umgebung. Sie können die von Ihrer Anwendung benötigten Umgebungsvariablen konfigurieren, die Protokollrotation an Amazon S3 aktivieren und die Ordner in der Anwendungsquelle, die statische Dateien enthalten, den vom Proxy-Server verwendeten Pfaden zuordnen.

In der Elastic Beanstalk-Konsole sind Konfigurationsoptionen für das Ändern der Konfiguration einer ausgeführten Umgebung verfügbar. Um zu verhindern, dass die Umgebungskonfiguration beim Beenden verloren geht, können Sie gespeicherte Konfigurationen verwenden, um Ihre Einstellungen zu speichern und sie später für eine andere Umgebung zu übernehmen.

Zum Speichern der Einstellungen im Quellcode können Sie Konfigurationsdateien einschließen. Die Einstellungen in Konfigurationsdateien werden jedes Mal verwendet, wenn Sie eine Umgebung erstellen oder Ihre Anwendung bereitstellen. Mit Konfigurationsdateien können Sie auch Pakete installieren, Skripts ausführen und andere Instance-Anpassungen bei Bereitstellungen vornehmen.

Sie können Ihrem Quellpaket eine Package.json Datei hinzufügen, um Pakete während der Bereitstellung zu installieren, einen Startbefehl bereitzustellen und die Node.js Version, die Ihre Anwendung verwenden soll. Sie können eine -Datei npm-shrinkwrap.json aufnehmen, um Abhängigkeitsversionen zu sperren.

Das Tool Node.js Die Plattform umfasst einen Proxyserver, der statische Ressourcen bereitstellt, Datenverkehr an Ihre Anwendung weiterleitet und Antworten komprimiert. Sie können die für erweiterte Szenarien Proxy-Standardkonfiguration erweitern oder überschreiben.

Es gibt verschiedene Möglichkeiten, um Ihre Anwendung zu starten. Sie können eine hinzufügen Procfilezu Ihrem Quellpaket, um den Befehl anzugeben, mit dem Ihre Anwendung gestartet wird. Wenn Sie kein Procfile bereitstellen, aber stattdessen eine package.json-Datei verfügbar machen führt Elastic Beanstalk npm start aus. Wenn Sie auch dies nicht angeben, sucht Elastic Beanstalk die Datei von app.js oder server.js (in dieser Reihenfolge) und führt das Script aus.

Die in der Elastic Beanstalk-Konsole angewendeten Einstellungen überschreiben die entsprechenden Einstellungen in Konfigurationsdateien, falls vorhanden. So sind Standardeinstellungen in Konfigurationsdateien möglich, die Sie mit umgebungsspezifischen Einstellungen in der Konsole überschreiben können. Für weitere Informationen zur Rangfolge und zu anderen Methoden zum Ändern der Einstellungen siehe Konfigurationsoptionen.

Details zu den verschiedenen Möglichkeiten für das Erweitern einer Linux-basierten Elastic Beanstalk-Plattform finden Sie unter Erweitern von Elastic Beanstalk-Linux-Plattformen.

Konfiguration Ihres Node.js Umgebung

Sie können das Node.js Plattformeinstellungen zur Feinabstimmung des Verhaltens Ihrer EC2 Amazon-Instances. Sie können die EC2 Amazon-Instance-Konfiguration für Ihre Elastic Beanstalk Beanstalk-Umgebung mithilfe der Elastic Beanstalk Beanstalk-Konsole bearbeiten.

Mithilfe der Elastic Beanstalk-Konsole aktivieren Sie die Protokollrotation an Amazon S3 und konfigurieren Variablen, die die Anwendung aus der Umgebung auslesen kann.

Um Ihre zu konfigurieren Node.js Umgebung in der Elastic Beanstalk Beanstalk-Konsole
  1. Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie im Navigationsbereich Configuration (Konfiguration) aus.

  4. Wählen Sie in der Konfigurationskategorie Updates, monitoring and logging  (Updates, Überwachung und Protokolle) die Option Edit (Bearbeiten) aus.

Containeroptionen

Sie können die folgenden plattformspezifischen Optionen angeben:

  • Proxy server (Proxy-Server) – Der Proxy-Server, der in Ihren Umgebungs-Instances verwendet werden soll. Standardmäßig NGINX wird verwendet.

Protokolloptionen

Im Abschnitt mit den Protokolloptionen sind zwei Einstellungen vorhanden:

  • Instance profile (Instance-Profil) – Gibt das Instance-Profil an, das zum Zugriff auf den mit der Anwendung verknüpften Amazon S3-Bucket berechtigt ist.

  • Rotation der Protokolldateien nach Amazon S3 aktivieren — Gibt an, ob Protokolldateien für die EC2 Amazon-Instances Ihrer Anwendung in den Amazon S3-Bucket kopiert werden, der Ihrer Anwendung zugeordnet ist.

Statische Dateien

Um die Leistung zu verbessern, können Sie den Abschnitt Statische Dateien verwenden, um den Proxy-Server so zu konfigurieren, dass statische Dateien (z. HTML B. Bilder) aus einer Reihe von Verzeichnissen in Ihrer Webanwendung bereitgestellt werden. Legen Sie für jedes Verzeichnis den virtuellen Pfad zum Verzeichnis-Mapping fest. Wenn der Proxy-Server eine Anfrage nach einer Datei unter dem angegebenen Pfad erhält, stellt er die Datei direkt bereit, anstatt die Anfrage an Ihre Anwendung weiterzuleiten.

Weitere Informationen zum Konfigurieren statischer Dateien mit der Elastic Beanstalk-Konsole finden Sie unter Bereitstellen von statischen Dateien.

Umgebungseigenschaften

Verwenden Sie den Abschnitt Umgebungseigenschaften, um die Umgebungskonfigurationseinstellungen für die EC2 Amazon-Instances anzugeben, auf denen Ihre Anwendung ausgeführt wird. Diese Einstellungen werden als Schlüsselwert-Paare an die Anwendung weitergeleitet.

Innerhalb des Node.js In der Umgebung, in der Sie ausgeführt werden AWS Elastic Beanstalk, können Sie auf die Umgebungsvariablen zugreifen, indem Sie Folgendes ausführenprocess.env.ENV_VARIABLE.

var endpoint = process.env.API_ENDPOINT

Das Tool Node.js Die Plattform legt die fest PORT Umgebungsvariable für den Port, an den der Proxyserver den Verkehr weiterleitet. Weitere Informationen finden Sie unter Konfigurieren des Proxy-Server.

Weitere Informationen finden Sie unter Umgebungseigenschaften und andere Softwareeinstellungen.

Die folgenden Kategorien von Konsolen-Softwarekonfigurationen werden nur auf Elastic Beanstalk unterstützt Node.js Umgebung, die eine Amazon AMI Linux-Plattformversion (vor Amazon Linux 2) verwendet.

Hinweise
  • Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und erfordern andere Konfigurationseinstellungen.

  • Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

Geben Sie auf der Konfigurationsseite Folgendes ein:

  • Proxyserver — Gibt an, welcher Webserver für Proxyverbindungen verwendet werden soll Node.js. Standardmäßig NGINX wird verwendet. Wenn Sie „Keine“ auswählen, werden statische Dateizuordnungen nicht wirksam, und GZIP Die Komprimierung ist deaktiviert.

  • Node.js Version — Gibt die Version von an Node.js. Für eine Liste der unterstützten Node.js Versionen finden Sie unter Node.jsim AWS Elastic Beanstalk Plattformhandbuch.

  • GZIP Komprimierung — Gibt an, ob GZIP Komprimierung ist aktiviert. Standardmäßig GZIP Die Komprimierung ist aktiviert.

  • Node-Befehl — Ermöglicht die Eingabe des Befehls, mit dem der Node.js Anwendung. Eine leere Zeichenfolge (Standard) bedeutet, dass Elastic Beanstalk erst app.js, dann server.js und dann npm start verwendet.

Node.js Konfigurations-Namespace

Mithilfe einer Konfigurationsdatei können Sie im Rahmen der Bereitstellung Konfigurationsoptionen festlegen und andere Instance-Konfigurationsaufgaben durchführen. Die Konfigurationsoptionen können plattformspezifisch sein oder für alle Plattformen im Elastic Beanstalk-Service als Ganzes gelten. Die Konfigurationsoptionen sind in Namespaces organisiert.

Sie können mittels des Namespace aws:elasticbeanstalk:environment:proxy den Proxy auswählen, der für die Instances Ihrer Umgebung verwendet werden soll. Im folgenden Beispiel wird Ihre Umgebung für die Verwendung von konfiguriert Apache HTTPD Proxyserver.

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

Sie können den Proxy so konfigurieren, dass statische Dateien mittels des Namespace aws:elasticbeanstalk:environment:proxy:staticfiles bereitgestellt werden. Weitere Informationen sowie ein Beispiel finden Sie unter Bereitstellen von statischen Dateien.

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Zusätzlich zu den Konfigurationsdateien können Sie Konfigurationsoptionen auch über die Konsole, gespeicherte Konfigurationen, den EB CLI oder den festlegen AWS CLI. Weitere Informationen finden Sie unter Konfigurationsoptionen.

Wenn dein Elastic Beanstalk Node.js Die Umgebung verwendet eine Amazon AMI Linux-Plattformversion (vor Amazon Linux 2). Beachten Sie die spezifischen Konfigurationen und Empfehlungen in diesem Abschnitt.

Hinweise
  • Die Informationen in diesem Thema gelten nur für Plattformbranches, die auf Amazon Linux AMI (AL1) basieren. AL2023/ AL2 Plattformzweige sind nicht mit früheren Amazon Linux AMI (AL1) -Plattformversionen kompatibel und erfordern andere Konfigurationseinstellungen.

  • Am 18. Juli 2022 hat Elastic Beanstalk den Status aller Plattformbranchen, die auf Amazon Linux AMI (AL1) basieren, auf eingestellt gesetzt. Weitere Informationen zur Migration zu einem aktuellen und vollständig unterstützten Plattformzweig für Amazon Linux 2023 finden Sie unter Migrieren der Elastic-Beanstalk-Linux-Anwendung zu Amazon Linux 2023 oder Amazon Linux 2.

Elastic Beanstalk unterstützt einige plattformspezifische Konfigurationsoptionen für Amazon Linux AMI Node.js Plattformversionen. Sie können wählen, welcher Proxyserver vor Ihrer Anwendung ausgeführt werden soll, wählen Sie eine bestimmte Version von Node.js zum Ausführen und wählen Sie den Befehl aus, mit dem Ihre Anwendung ausgeführt wird.

Als Proxyserver können Sie einen verwenden NGINX or Apache Proxyserver. Sie können den Wert none auf die Option ProxyServer festlegen. Mit dieser Einstellung führt Elastic Beanstalk Ihre Anwendung als eigenständige Anwendung aus und nicht hinter einem Proxy-Server. Wenn in Ihrer Umgebung eine eigenständige Anwendung ausgeführt wird, aktualisieren Sie Ihren Code so, dass er den Port abhört, der NGINX leitet den Verkehr weiter an.

var port = process.env.PORT || 8080; app.listen(port, function() { console.log('Server running at http://127.0.0.1:%s', port); });

In Bezug auf die unterstützte Sprachversion ist die Node.js Die Amazon AMI Linux-Plattform unterscheidet sich von anderen von Elastic Beanstalk verwalteten Plattformen. Das liegt daran, dass jeder Node.js Die Plattformversion unterstützt nur wenige Node.js Sprachversionen. Für eine Liste der unterstützten Node.js Versionen finden Sie unter Node.jsim AWS Elastic Beanstalk Plattformhandbuch.

Sie können eine plattformspezifische Konfigurationsoption verwenden, um die Sprachversion festzulegen. Detaillierte Anweisungen finden Sie unter Konfiguration Ihres Node.js Umgebung. Verwenden Sie alternativ die Elastic Beanstalk Beanstalk-Konsole, um das zu aktualisieren Node.js Version, die Ihre Umgebung im Rahmen der Aktualisierung Ihrer Plattformversion verwendet.

Anmerkung

Wenn die von Ihnen verwendete Version von Node.js von der Plattform nicht mehr unterstützt wird, müssen Sie die Versionseinstellung vor der Ausführung einer Plattformaktualisierung ändern oder löschen. Dieser Fall kann eintreten, wenn eine Schwachstelle für eine oder mehrere Versionen von Node.js identifiziert wird.

In diesem Fall schlägt der Versuch NodeVersionfehl, auf eine neue Version der Plattform zu aktualisieren, die die konfigurierte Version nicht unterstützt. Um zu vermeiden, dass eine neue Umgebung erstellt werden muss, ändern Sie die NodeVersionKonfigurationsoption in eine Version von Node.js, die sowohl von der alten als auch von der neuen Plattformversion unterstützt wird, oder entfernen Sie die Optionseinstellung und führen Sie dann das Plattformupdate durch.

Um Ihre Umgebung zu konfigurieren Node.js Version in der Elastic Beanstalk Beanstalk-Konsole
  1. Öffnen Sie die Elastic Beanstalk Beanstalk-Konsole und wählen Sie in der Liste Regionen Ihre aus. AWS-Region

  2. Wählen Sie im Navigationsbereich Environments (Umgebungen) aus und wählen Sie dann in der Liste den Namen Ihrer Umgebung aus.

    Anmerkung

    Wenn Sie viele Umgebungen haben, verwenden Sie die Suchleiste, um die Umgebungsliste zu filtern.

  3. Wählen Sie auf der Umgebungsübersichtsseite unter Platform (Plattform) die Option Change (Ändern) aus.

  4. Wählen Sie im Dialogfeld Plattformversion aktualisieren eine Node.js Version.

    Bestätigen der Aktualisierung der Elastic-Beanstalk-Plattformversion
  5. Wählen Sie Save (Speichern) aus.

Das Tool Node.js Die Amazon AMI Linux-Plattform definiert zusätzliche Optionen in den aws:elasticbeanstalk:container:nodejs Namespaces aws:elasticbeanstalk:container:nodejs:staticfiles und.

Die folgende Konfigurationsdatei weist Elastic Beanstalk an, npm start zum Ausführen der Anwendung zu verwenden. Außerdem wird der Proxytyp auf festgelegt Apache und aktiviert die Komprimierung. Zuletzt konfiguriert sie den Proxy, um statische Dateien aus zwei Quellverzeichnissen bereitzustellen. Eine Quelle ist HTML Dateien im html Pfad unter dem Stammverzeichnis der Website aus dem statichtml Quellverzeichnis. Die andere Quelle besteht aus Image-Dateien unter dem Pfad images im Stammverzeichnis der Website aus dem Quellverzeichnis von staticimages.

Beispiel .ebextensions/node-settings.config
option_settings: aws:elasticbeanstalk:container:nodejs: NodeCommand: "npm start" ProxyServer: apache GzipCompression: true aws:elasticbeanstalk:container:nodejs:staticfiles: /html: statichtml /images: staticimages

Elastic Beanstalk bietet zahlreiche Konfigurationsoptionen für die Anpassung Ihrer Umgebung. Neben den Konfigurationsdateien können Sie auch Konfigurationsoptionen über die Konsole, gespeicherte Konfigurationen, das EB CLI oder das festlegen AWS CLI. Weitere Informationen finden Sie unter Konfigurationsoptionen.