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.
Konfiguration der Abhängigkeiten Ihrer Anwendung von Elastic Beanstalk
Ihre Anwendung hat möglicherweise Abhängigkeiten von einigen Node.js Module, z. B. die, die Sie in require()
Anweisungen angeben. Diese Module werden in einem node_modules
-Verzeichnis gespeichert. Wenn Ihre Anwendung ausgeführt wird, Node.js lädt die Module aus diesem Verzeichnis. Weitere Informationen finden Sie unter Laden aus den Ordnern node_modules
Sie können diese Modul-Abhängigkeiten mithilfe einer package.json
-Datei angeben. Wenn Elastic Beanstalk diese Datei erkennt und kein node_modules
-Verzeichnis vorhanden ist, führt Elastic Beanstalk npm install
als der webapp-Benutzer aus. Der npm
install
-Befehl installiert die Abhängigkeiten in dem node_modules
-Verzeichnis, das Elastic Beanstalk zuvor erstellt hat. Der npm
install
-Befehl greift auf die in der package.json
-Datei aufgeführten Pakete aus der öffentlichen npm-Registrierung oder von anderen Orten zu. Weitere Informationen finden Sie auf der Website npm-Dokumente
Wenn Elastic Beanstalk das node_modules
-Verzeichnis erkennt, führt Elastic Beanstalk npm install
nicht aus, auch wenn eine package.json
-Datei existiert. Elastic Beanstalk geht davon aus, dass die Abhängigkeitspakete im node_modules
Verzeichnis für verfügbar sind Node.js zum Zugreifen und Laden.
In den folgenden Abschnitten finden Sie weitere Informationen zur Einrichtung Ihres Node.js Modulabhängigkeiten für Ihre Anwendung.
Anmerkung
Wenn bei der Ausführung von npm install
durch Elastic Beanstalk Probleme bei der Bereitstellung auftreten, sollten Sie einen alternativen Ansatz in Betracht ziehen. Fügen Sie das node_modules
-Verzeichnis mit den Abhängigkeiten zu Ihrem Anwendungs-Quell-Bundle hinzu. Dadurch können Sie Probleme bei der Installation von Abhängigkeiten aus der öffentlichen npm-Registry umgehen, während Sie das Problem untersuchen. Da die Abhängigkeitsmodule aus einem lokalen Verzeichnis stammen, kann dies auch dabei helfen, die Bereitstellungszeit zu verkürzen. Weitere Informationen finden Sie unter Einschließlich Node.js Abhängigkeiten in einem node_modules-Verzeichnis
Spezifizieren Node.js Abhängigkeiten mit einer package.json-Datei
Sie können mithilfe einer package.json
-Datei im Stammverzeichnis Ihrer Projektquelle Abhängigkeitspakete angeben und einen Startbefehl bereitstellen. Wenn eine package.json
-Datei vorhanden ist und kein node_modules
-Verzeichnis im Stammverzeichnis Ihrer Projektquelle vorhanden ist, wird Elastic Beanstalk npm install
als webapp-Benutzer ausführen, um Abhängigkeiten aus der öffentlichen npm-Registry zu installieren. Außerdem wird Elastic Beanstalk die Anwendung mit dem Befehl start
starten. Weitere Informationen zur package.json
-Datei finden Sie unter Angeben von Abhängigkeiten in einer package.json
-Datei
Geben Sie mit dem Schlüsselwort scripts
einen Startbefehl an. Derzeit wird das Schlüsselwort scripts
anstelle der Legacy-Option NodeCommand
im Namespace aws:elasticbeanstalk:container:nodejs
verwendet.
Beispiel package.json – Express
{
"name": "my-app",
"version": "0.0.1",
"private": true,
"dependencies": {
"ejs": "latest",
"aws-sdk": "latest",
"express": "latest",
"body-parser": "latest"
},
"scripts": {
"start": "node app.js"
}
}
Produktionsmodus und Entwicklungsabhängigkeiten
Verwenden Sie die Abhängigkeiten und Attribute, um Ihre Abhängigkeiten in der package.json
Datei anzugeben. devDependencies Das Attribut dependencies bezeichnet Pakete, die Ihre Anwendung in der Produktion benötigt. Das devDependenciesAttribut kennzeichnet Pakete, die nur für lokale Entwicklung und Tests benötigt werden.
Elastic Beanstalk wird npm install
als webapp-Benutzer mit den folgenden Befehlen ausführen. Die Befehlsoptionen variieren je nach der npm-Version, die im Plattformzweig enthalten ist, auf dem Ihre Anwendung ausgeführt wird.
-
npm v6 – Elastic Beanstalk installiert die Abhängigkeiten standardmäßig im Produktionsmodus. Es verwendet den Befehl
npm install --production
. -
npm v7 oder höher — Elastic Beanstalk lässt das weg. devDependencies Es verwendet den Befehl
npm install --omit=dev
.
Beide oben aufgeführten Befehle installieren nicht die Pakete, die es sind. devDependencies
Wenn Sie die devDependenciesPakete installieren müssen, setzen Sie die PRODUCTION Umgebungseigenschaft NPM USE _ _ auffalse
. Mit dieser Einstellung werden wir die obigen Optionen nicht verwenden, wenn wir npm install ausführen. Dies führt dazu, dass die devDependenciesPakete installiert werden.
SSHund HTTPS
Ab der Amazon Linux 2-Plattformversion vom 7. März 2023 können Sie auch die HTTPS Protokolle SSH und verwenden, um Pakete aus einem Git-Repository abzurufen. Plattformzweig Node.js 16 unterstützt sowohl die als SSH auch die HTTPS Protokolle. Node.js 14 unterstützt nur das HTTPS Protokoll.
Beispiel package.json — Node.js 16 unterstützt sowohl als HTTPS SSH
...
"dependencies": {
"aws-sdk": "https://github.com/aws/aws-sdk-js.git",
"aws-chime": "git+ssh://git@github.com:aws/amazon-chime-sdk-js.git"
}
Versionen und Versionsbereiche
Wichtig
Die Funktion zur Angabe von Versionsbereichen ist für Plattformzweige von Node.js, die auf AL2 023 ausgeführt werden, nicht verfügbar. Wir unterstützen nur eine Version von Node.js innerhalb eines bestimmten Node.js -Zweigs auf AL2 023. Wenn Ihre package.json
-Datei einen Versionsbereich angibt, ignorieren wir diesen und verwenden standardmäßig die Version des Plattformzweigs von Node.js.
Verwenden Sie das engines
Schlüsselwort in der package.json
Datei, um Folgendes anzugeben Node.js Version, die Ihre Anwendung verwenden soll. Mit der npm-Notation können Sie auch einen Versionsbereich angeben. Weitere Informationen zur Syntax für Versionsbereiche finden Sie unter Semantische Versionierung mit npmengines
Schlüsselwort in der Node.js package.json
file ersetzt die ältere NodeVersion
Option im aws:elasticbeanstalk:container:nodejs
Namespace.
Beispiel package.json
— Einzeln Node.js version
{
...
"engines": { "node" : "14.16.0" }
}
Beispiel package.json
– Node.js Versionsbereich
{
...
"engines": { "node" : ">=10 <11" }
}
Wenn ein Versionsbereich angegeben wird, installiert Elastic Beanstalk den neuesten Node.js Version, die auf der Plattform innerhalb des Bereichs verfügbar ist. In diesem Beispiel gibt der Bereich an, dass die Version größer oder gleich als Version 10 sein muss, aber kleiner als Version 11. Aus diesem Grund installiert Elastic Beanstalk die neueste Node.js version 10.x.y, das auf der unterstützten Plattform verfügbar ist.
Beachten Sie, dass Sie nur eine angeben können Node.js Version, die Ihrem Plattformzweig entspricht. Wenn Sie zum Beispiel die verwenden Node.js 16 Plattformzweig, Sie können nur einen angeben 16.x.y Node.js Version. Sie können die von npm unterstützten Versionsbereichsoptionen verwenden, um eine größere Flexibilität zu ermöglichen. Für gültig Node.js Versionen für jeden Plattformzweig finden Sie unter Node.jsim AWS Elastic Beanstalk Plattformhandbuch.
Anmerkung
Wenn die von Ihnen verwendete Version von Node.js von der Plattform nicht mehr unterstützt wird, müssen Sie die Einstellung der Node.js-Version vor der Ausführung einer Plattform-Aktualisierung ändern oder löschen. Dieser Fall kann eintreten, wenn eine Schwachstelle bei einer oder mehreren Versionen von Node.js identifiziert wird.
In diesem Fall schlägt die Aktualisierung auf eine neue Plattformversion, die die konfigurierte Node.js-Version nicht unterstützt, fehl. Um zu vermeiden, dass eine neue Umgebung erstellt werden muss, ändern Sie die Einstellung der Node.js-Version in package.json
in eine Node.js-Version, die sowohl von der alten als auch von der neuen Version unterstützt wird. Sie können einen Node.js-Versionsbereich angeben, der eine unterstützte Version enthält, wie oben in diesem Thema beschrieben. Außerdem können Sie die Einstellung entfernen und dann das neue Quellpaket bereitstellen.
Einschließlich Node.js Abhängigkeiten in einem node_modules-Verzeichnis
Wenn Sie Abhängigkeitspakete zusammen mit Ihrem Anwendungscode in Umgebungsinstances bereitstellen möchten, fügen Sie sie in das Verzeichnis node_modules
im Stammverzeichnis der Projektquelle ein. Weitere Informationen finden Sie unter Pakete lokal herunterladen und installieren
Wenn Sie ein node_modules
Verzeichnis in einem 023/ bereitstellen AL2 AL2 Node.js Bei der Plattformversion geht Elastic Beanstalk davon aus, dass Sie Ihre eigenen Abhängigkeitspakete bereitstellen, und vermeidet die Installation von Abhängigkeiten, die in einer package.json-Datei angegeben sind. Node.js sucht im Verzeichnis nach Abhängigkeiten. node_modules
Weitere Informationen finden Sie unter Laden aus node_modules-Ordnern
Anmerkung
Wenn bei der Ausführung von npm install
durch Elastic Beanstalk Probleme bei der Bereitstellung auftreten, sollten Sie bei der Untersuchung des Problems den in diesem Thema beschriebenen Ansatz als Workaround verwenden.