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.6mysqlclient verwendet 1.4.6pip 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.18Sie 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