[PYTHON] Umgebung, in der native Bibliotheken in AWS Lambda enthalten sind

Einführung

Wenn Sie eine native Bibliothek in einer Python-Abhängigkeitsbibliothek verwenden, Ich habe vor langer Zeit gehört, dass die zu bauende Umgebung (pip) und die Umgebung auf der AWS Lambda-Seite aufeinander abgestimmt sind.

Aber was ist der tatsächliche Effekt und wie ist es schlecht? Ich habe es also überhaupt nicht überprüft Es ist ein Memo, dass ich die Bibliothek überprüft habe, die durch "pip install" erhalten wurde, während ich süchtig danach war.

Fehler beim Ausführen von Lambda

Fehlerinhalt

Es trat auf, wenn ein Modul verwendet wurde, das die Entfernung berechnet, die als "pyproj" bezeichnet wird. (Zuerst wusste ich nicht, was mit diesem Fehler allein falsch war ...)

[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_handler': cannot import name '_datadir' from partially initialized module 'pyproj' (most likely due to a circular import) (/var/task/pyproj/__init__.py)

Umgebung zum Zeitpunkt des Fehlers

Umgebung zum Zeitpunkt der Fehlerbehebung

Inhalt der Pyproj-Bibliothek (Teilauszug)

Ich verstehe den detaillierten Installationsmechanismus nicht, aber er erfasst automatisch die Umgebung und Es schien die abhängigen nativen Bibliotheken herunterzuladen.

Die Build-Umgebung ist Docker Image Python 3.7

pyproj
- _crs.cpython-37m-x86_64-linux-gnu.so
- _datadir.cpython-37m-x86_64-linux-gnu.so
- proj.py

Die Build-Umgebung ist Docker Image Python 3.8

pyproj
- _crs.cpython-38m-x86_64-linux-gnu.so
- _datadir.cpython-38m-x86_64-linux-gnu.so
- proj.py

Build-Umgebung ist Windows Python 3.7 Installation (Bonus)

pyproj
- _crs.cp37-win32.pyd
- _datadir.cp37-win32.pyd
- proj.py

schließlich

Ich habe ein bisschen mehr Verständnis oder ein Gefühl der Überzeugung. Da jedoch das offizielle Docker Image von Amazon Linux verteilt wird, sollte die Build-Umgebung möglicherweise vorhanden sein.

Recommended Posts

Umgebung, in der native Bibliotheken in AWS Lambda enthalten sind
Berühren Sie Unterstützung für AWS Lambda-Umgebungsvariablen
Versuchen Sie, AWS Lambda-Umgebungsvariablen anzugeben?
Überprüfen Sie types_map, wenn Sie Mimetypen mit AWS Lambda (Python) verwenden.
Ich habe versucht, TensorFlow in der AWS Lambda-Umgebung auszuführen: Vorbereitung
Tweet von AWS Lambda
Probieren Sie AWS Lambda Destinations aus
Suchtpunkte beim Herunterladen von Dateien mit boto auf AWS Lambda
Ich habe gerade eine virtuelle Umgebung mit der AWS-Lambda-Schicht erstellt