AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
Wie behebe ich die Fehler „Cannot find module“ oder „Cannot find Package“, wenn ich Lambda-Code in Node.js ausführe?
Ich erhalte die Fehlermeldung „Cannot find module“ oder „Cannot find Package“, wenn ich AWS Lambda-Code in Node.js ausführe.
Kurzbeschreibung
Wenn die Lambda-Umgebung die angegebene Bibliothek im Code von Node.js nicht finden kann, erhältst du einen der genannten Fehler. Diese Fehler treten auf, weil Lambda nicht mit allen Bibliotheken von Node.js vorverpackt ist.
Lösung
Um diese Fehler zu beheben, erstelle eine Lambda-Ebene, die die Bibliotheken enthält, die du im Node.js-Code verwenden möchtest. Du kannst die Ebene für mehrere Lambda-Funktionen wiederverwenden.
Für Node.js Runtimes 16 und früher unterstützt Lambda keine geschichteten JavaScript-ES-Modulabhängigkeiten. Du musst die Abhängigkeiten in die Bereitstellung einbeziehen. Lambda unterstützt JavaScript-ES-Modulabhängigkeiten für Node.js 24
Jede Lambda-Runtime fügt der PATH-Variablen bestimmte /opt-Verzeichnisordner hinzu. Wenn die Ebene dieselbe Ordnerstruktur verwendet, kann der Code der Lambda-Funktion auf der Ebenen-Inhalt zugreifen, ohne den Pfad anzugeben.
Wichtig: Die Bibliothek, die du für Node.js importierst, muss sich in der Ordnerstruktur nodejs/node_modules befinden.
Es hat sich bewährt, eine Lambda-Ebene auf demselben Betriebssystem zu erstellen, auf dem deine durch Lambda unterstützte Laufzeit basiert. Beispielsweise basieren die aktuellsten Versionen von Node.js auf Amazon Linux 2023 Amazon Machine Images (AMIs).
Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Troubleshooting errors for the AWS CLI (Problembehandlung bei der AWS CLI). Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.
Gehe wie folgt vor, um eine Lambda-Ebene für eine Node.js-Bibliothek zu erstellen:
- Erstelle eine Amazon Elastic Compute Cloud (Amazon EC2)-Instance aus einem Amazon Linux 2023-AMI.
- Erstelle eine AWS Identity and Access Management (IAM)-Rolle mit Berechtigungen zum Aufrufen der API für die publish-layer-version.
- Hänge die IAM-Rolle an die Amazon EC2-Instance an.
Hinweis: Deine Instance verfügt jetzt über Berechtigungen zum Hochladen von Lambda-Ebenen für den API-Aufruf publish-layer-version. Verwende SSH, um eine Verbindung zu deiner EC2-Instance herzustellen. Installiere Node.js, indem du den folgenden curl-Befehl ausführst:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh bash $ . ~/.nvm/nvm.sh nvm install 24 ``` 6. Erstelle einen ** nodejs**-Ordner: ```plaintext mkdir nodejs
-
Installiere die aws-xray-sdk-Bibliothek im Ordner nodejs:
cd nodejs$ npm init ***answer all queries for initialization that create a package.json file*** npm install --save aws-xray-sdkHinweis: Ersetze die Bibliothek aws-xray-sdk durch die Node.js-Bibliothek, die du importieren möchtest.
-
Erstelle ein Zip-Archiv für die aws-xray-sdk-Bibliothek:
zip -r layer.zip nodejsHinweis: Die Bibliothek aws-xray-sdk hat das erforderliche Ordnerformat für eine Node.js-Ebene nodejs/node_modules.
-
Um die Lambda-Ebene zu veröffentlichen, führe den folgenden Befehl publish-layer-version aus:
aws lambda publish-layer-version --layer-name xray --zip-file fileb://layer.zip --compatible-runtimes nodejs24.x --region your-regionHinweis: Ersetze xray durch den Namen deiner Ebene, nodejs24.x durch deine Node.js-Version und your-region durch deine AWS-Region.
Informationen zum Hinzufügen der Module ECMAScript 6 (ES6) oder CommonJS im Code findest du unter JavaScript ES6/CommonJS-Syntax.
Weitere Informationen
Wie erstelle ich ein Lambda-Bereitstellungspaket für Node.js?
- Themen
- Compute
- Tags
- AWS Lambda
- Sprache
- Deutsch
Ähnliche Videos


Relevanter Inhalt
AWS OFFICIALAktualisiert vor 7 Monaten
AWS OFFICIALAktualisiert vor 4 Jahren
AWS OFFICIALAktualisiert vor einem Jahr