Bei Verwendung von Python mit Lambda sind verschiedene Vorbereitungen erforderlich, wenn ein MySQL-Client verwendet wird, der "mysqlclient" (SQLAlchemy usw.) verwendet.
mysqlclient
verwendet 1.4.6
mysqlclient
verwendet 1.4.6
pip install mysqlclient===1.4.6
Ich kenne das detaillierte Prinzip nicht, aber wenn ich versuche, "2.0.1" zu verwenden, werde ich ohne "mysql" wütend. ..
libmysqlclient.so.18
Sie benötigen "libmysqlclient.so.18" für Amazon Linux2, also erstellen Sie es.
docker run -it amazonlinux:2 bash
Geben Sie "libmysqlclient.so.18" ein.
yum update -y
yum install -y gcc mysql-devel mysql-libs # /lib64/mysql/libmysqlclient.so.18 tritt ein
Kopieren Sie libmysqlclient.so.18
lokal mit docker cp
usw.
docker cp container:/lib64/mysql/libmysqlclient.so.18.0.0 local_path
Der Pfad der Bibliothek auf dem Lambda-Container ist also ↓
LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib
Sie müssen sicherstellen, dass "libmysqlclient.so.18" im obigen Pfad platziert wird, wenn es im Lambda-Container platziert wird.
Die Dateien der Ebene werden in "/ opt" erweitert, ".so" muss sich jedoch an der Position "/ opt / lib" befinden.
Es wird zu / var / task
erweitert, also erstelle lib
und füge .so
ein.
Recommended Posts