New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Wie behebe ich den Fehler „Unable to import module“, der auftritt, wenn ich Lambda-Code in Python ausführe?
Ich möchte den Fehler „Unable to import module“ beheben, wenn ich Python-Code in einer AWS Lambda-Funktion ausführe.
Kurzbeschreibung
Du erhältst die Fehlermeldung „Unable to import module“, wenn die Lambda-Umgebung die angegebene Bibliothek in deinem Lambda-Bereitstellungspaket nicht finden kann.
Um diesen Fehler zu beheben, erstelle ein Bereitstellungspaket mit allen erforderlichen Bibliotheken. Oder erstelle eine Lambda-Ebene mit den erforderlichen Bibliotheken und hänge die Ebene an deine Lambda-Funktion an. Anschließend kannst du die Ebene für mehrere Lambda-Funktionen wiederverwenden.
Lösung
Erstelle eine Lambda-Ebene, um sie an mehrere Lambda-Funktionen anzuhängen
Hinweis: Wenn du die Lambda-Ebene erstellst, lege die Bibliotheken in die Ordner /python oder python/lib/python3.x/site-packages. Es hat sich bewährt, eine Lambda-Ebene auf demselben Betriebssystem zu erstellen, auf dem deine Lambda-Laufzeit basiert. Python 3.12 basiert beispielsweise auf einem Amazon Linux 2023 Amazon Machine Image (AMI). Erstelle die Ebene also auf einem Amazon Linux 2023-Betriebssystem.
Wenn die Amazon Elastic Compute Cloud (Amazon EC2)-Instance die Berechtigung hat, den API-Aufruf PublishLayerVersion zum Hochladen von Lambda-Ebenen zu verwenden, fahre mit Schritt 5 fort.
Führe die folgenden Schritte aus:
-
Verwende die Amazon EC2-Konsole, um eine Instance mit Amazon Linux 2023 AMI zu erstellen. Oder verwende die AWS Cloud9-Konsole.
-
Erstelle eine AWS Identity and Access Management (IAM, Identiäts- und Zugriffsmanagement)-Richtlinie, die Berechtigungen zum Aufrufen der API-Operation PublishLayerVersion gewährt.
Beispiel für eine IAM-Richtlinie:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "lambda:PublishLayerVersion", "Resource": "*" } ] }
-
Erstelle eine IAM-Rolle und hänge die IAM-Richtlinie an die Rolle an.
-
Hänge die IAM-Rolle an die EC2-Instance an.
-
Stelle eine Verbindung zu deiner Instance oder der AWS Cloud9-Umgebung her.
-
Führe die folgenden Befehle aus, um einen neuen Ordner zu erstellen, und verwende pip, um die Bibliothek mit dem Namen „numpy“ zu installieren:
mkdir -p lambda-layer/pythoncd lambda-layer/python pip3 install --platform manylinux2014_x86_64 --target . --python-version 3.12 --only-binary=:all: numpy
**Hinweis:**Aktualisiere den Plattformparameter für deinen Funktionstyp. Für eine x86\ _64 Lambda-Funktion setze den Wert auf manylinux2014\ _x86\ _64. Für eine arm64-Funktion setze den Wert auf manylinux2014\ _aarch64. Aktualisiere den Parameter python-version auf dieselbe Version, die deine Lambda-Funktion verwendet.
-
Führe den folgenden Befehl aus, um den Inhalt des Python-Ordners in eine layer.zip-Datei zu packen:
cd ..zip -r layer.zip python
-
Führe den folgenden Befehl aus, um die Lambda-Ebene zu veröffentlichen:
aws lambda publish-layer-version --layer-name numpy-layer --zip-file fileb://layer.zip --compatible-runtimes python3.12 --region us-east-1
Hinweis: Ersetze us-east-1 durch die AWS-Region, in der sich deine Lambda-Funktion befindet.
-
Importiere das Paket und drucke die Version aus, um deine Lambda-Funktion zu testen.
Beispielausgabe:
import jsonimport numpy def lambda_handler(event, context): print(numpy.__version__) return { 'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Monat
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor einem Monat