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.
Erstellen von Lambda-Funktionen mit Node.js
Sie können JavaScript Code mit Node.js in AWS Lambda ausführen. Lambda bietet Laufzeiten für Node.js die Ausführung Ihres Codes zur Verarbeitung von Ereignissen. Ihr Code wird in einer Umgebung ausgeführt, die die umfasst AWS SDK for JavaScript, mit Anmeldeinformationen aus einer von Ihnen AWS Identity and Access Management verwalteten (IAM-) Rolle. Weitere Informationen zu den SDK-Versionen, die in den Node.js Runtimes enthalten sind, finden Sie unter. Runtime-included SDK-Versionen
Lambda unterstützt die folgenden Node.js Laufzeiten.
| Name | ID | Betriebssystem | Datum der Veraltung | Blockfunktion erstellen | Blockfunktion aktualisieren |
|---|---|---|---|---|---|
|
Node.js 24 |
|
Amazon Linux 2023 |
30. April 2028 |
1. Juni 2028 |
1. Juli 2028 |
|
Node.js 22 |
|
Amazon Linux 2023 |
30. April 2027 |
1. Juni 2027 |
1. Juli 2027 |
Um eine Funktion zu erstellen Node.js
-
Öffnen Sie die Lambda-Konsole
. -
Wählen Sie Funktion erstellen.
-
Konfigurieren Sie die folgenden Einstellungen:
-
Funktionsname: Geben Sie einen Namen für die Funktion ein.
-
Runtime: Wählen Sie Node.js 24.x.
-
-
Wählen Sie Funktion erstellen.
Die Konsole erstellt eine Lambda-Funktion mit einer einzigen Quelldatei mit dem Namen index.mjs. Mit dem integrierten Code-Editor können Sie diese Datei bearbeiten und weitere Dateien hinzufügen. Wählen Sie im Abschnitt BEREITSTELLEN die Option Bereitstellen aus, um den Code Ihrer Funktion zu aktualisieren. Um Ihren Code auszuführen, wählen Sie anschließend im Abschnitt TESTEREIGNISSE die Option Testereignis erstellen aus.
Die index.mjs-Datei exportiert eine Funktion mit dem Namen handler, die ein Ereignisobjekt und ein Kontext-Objekt übernimmt. Dies ist die Handler-Funktion, die bei einem Aufruf der Funktion von Lambda aufgerufen wird. Die Node.js Funktion Runtime ruft Aufrufereignisse von Lambda ab und übergibt sie an den Handler. In der Konfiguration der Funktion lautet der Wert für den Handler index.handler.
Wenn Sie Ihren Funktionscode speichern, erstellt die Lambda-Konsole ein Bereitstellungspaket für das ZIP-Dateiarchiv. Wenn Sie Ihren Funktionscode außerhalb der Konsole (mit einer IDE) entwickeln, müssen Sie ein Bereitstellungspaket erstellen, um Ihren Code in die Lambda-Funktion hochzuladen.
Die Funktionslaufzeit übergibt neben dem Aufrufereignis ein Context-Objekt an den Handler. Das Context-Objekt enthält zusätzliche Informationen zum Aufruf, zur Funktion und zur Ausführungsumgebung. Weitere Informationen erhalten Sie über die Umgebungsvariablen.
Ihre Lambda-Funktion enthält eine CloudWatch Logs-Protokollgruppe. Die Funktionslaufzeit sendet Details zu jedem Aufruf an CloudWatch Logs. Es leitet alle Protokolle weiter, die Ihre Funktion während des Aufrufs ausgibt. Wenn Ihre Funktion einen Fehler zurückgibt, formatiert Lambda den Fehler und gibt ihn an den Aufrufer zurück.
Themen
Runtime-included SDK-Versionen
Alle unterstützten Node.js Lambda-Laufzeiten enthalten eine bestimmte Nebenversion der Version AWS SDK for JavaScript 3, nicht die neueste Version.
Beispiel index.mjs
import packageJson from '@aws-sdk/client-s3/package.json' with { type: 'json' }; export const handler = async () => ({ version: packageJson.version });
Dies gibt eine Antwort im folgenden Format zurück:
{ "version": "3.632.0" }
Weitere Informationen finden Sie unter Verwenden Sie das SDK für JavaScript v3 in Ihrem Handler.
Verwenden von Keepalive für TCP-Verbindungen
Der Node.js HTTP/HTTPS Standard-Agent erstellt für jede neue Anfrage eine neue TCP-Verbindung. Um die Kosten für den Aufbau neuer Verbindungen zu vermeiden, ist Keep-Alive in allen unterstützten Node.js Laufzeiten standardmäßig aktiviert. Keep-alive kann die Anforderungszeiten für Lambda-Funktionen reduzieren, die mithilfe des SDK mehrere API-Aufrufe tätigen.
Informationen zum Deaktivieren von Keep-Alive finden Sie unter Wiederverwenden von Verbindungen mit Keep-Alive Node.js im SDK für 3.x Developer Guide. AWS JavaScript Weitere Informationen zur Verwendung von Keep-Alive finden Sie unter HTTP-Keep-Alive ist im modularen SDK standardmäßig aktiviert im Developer Tools Blog. AWS JavaScript
CA-Zertifikat wird geladen
Für Node.js Laufzeitversionen bis Node.js 18 lädt Lambda automatisch Amazon-specific CA-Zertifikate (Certificate Authority), um Ihnen das Erstellen von Funktionen zu erleichtern, die mit anderen interagieren. AWS-Services Lambda enthält beispielsweise die Amazon-RDS-Zertifikate, die für die Validierung des in Ihrer Amazon-RDS-Datenbank installierten Server-Identitätszertifikats erforderlich sind. Dieses Verhalten kann sich bei Kaltstarts auf die Leistung auswirken.
Ab Version Node.js 20 lädt Lambda standardmäßig keine zusätzlichen CA-Zertifikate mehr. Die Node.js 20-Laufzeit enthält eine Zertifikatsdatei mit allen Amazon-CA-Zertifikaten unter/var/runtime/ca-cert.pem. Um das gleiche Verhalten von Node.js 18 und früheren Laufzeiten wiederherzustellen, setzen Sie die NODE_EXTRA_CA_CERTS Umgebungsvariable auf/var/runtime/ca-cert.pem.
Für eine optimale Leistung empfehlen wir, nur die Zertifikate, die Sie benötigen, mit Ihrem Bereitstellungspaket zu bündeln und sie über die NODE_EXTRA_CA_CERTS Umgebungsvariable zu laden. Die Zertifikatsdatei sollte aus einem oder mehreren vertrauenswürdigen Stammzertifikaten oder Zertifikaten von Zwischenzertifizierungsstellen im PEM-Format bestehen. Fügen Sie für RDS die erforderlichen Zertifikate beispielsweise zusammen mit Ihrem Code als certificates/rds.pem hinzu. Laden Sie dann die Zertifikate, indem Sie NODE_EXTRA_CA_CERTS auf /var/task/certificates/rds.pem festlegen.
Experimentelle Funktionen Node.js
Die Node.js Upstream-Sprachversionen ermöglichen standardmäßig einige experimentelle Funktionen. Lambda deaktiviert diese Features, um die Laufzeitstabilität und eine konsistente Leistung zu gewährleisten. In der folgenden Tabelle sind die experimentellen Features aufgeführt, die Lambda deaktiviert.
| Experimentelle Features | Unterstützte Node.js Versionen | Node.js Von Lambda angewendete Flagge | Lambda-Flag zum erneuten Aktivieren |
|---|---|---|---|
|
Support für den Import von Modulen mithilfe von „require“ in ES-Modulen |
Node.js 20, Node.js 22, Node.js 24 |
|
|
|
Support für die automatische Erkennung von ES- und CommonJS-Modulen |
Node.js 22, Node.js 24 |
|
|
Um ein deaktiviertes experimentelles Feature zu aktivieren, setzen Sie das Reaktivierungs-Flag in der Umgebungsvariablen „NODE_OPTIONS“. Beispiel: Um die Unterstützung für „require“ in ES-Modulen zu aktivieren, setzen Sie „NODE_OPTIONS“ auf „--experimental-require-module“. Lambda erkennt diese Überschreibung und entfernt das entsprechende Deaktivierungs-Flag.
Wichtig
Die Verwendung experimenteller Features kann zu Instabilität und Leistungsproblemen führen. Diese Funktionen könnten in zukünftigen Node.js Versionen geändert oder entfernt werden. Funktionen, die experimentelle Features nutzen, sind nicht für das Lambda Service Level Agreement (SLA) oder AWS Support qualifiziert.