Lors de l'utilisation de Python avec Lambda, diverses préparations sont nécessaires lors de l'utilisation d'un client MySQL qui utilise mysqlclient (SQLAlchemy, etc.).
mysqlclient utilise 1.4.6libmysqlclient.so.18 sur AmazonLinux2libmysqlclient.so.18 est téléchargé sur Lambda, placez-le dans le chemin de la bibliothèque sur Lambda.mysqlclient utilise 1.4.6pip install mysqlclient===1.4.6
Je ne connais pas le principe détaillé, mais quand j'essaye d'utiliser «2.0.1», je me fâche sans «_mysql ». ..
libmysqlclient.so.18Vous aurez besoin de libmysqlclient.so.18 pour Amazon Linux2, alors compilez-le.
docker run -it amazonlinux:2 bash
Entrez libmysqlclient.so.18.
yum update -y
yum install -y gcc mysql-devel mysql-libs # /lib64/mysql/libmysqlclient.so.18 entre
Copiez libmysqlclient.so.18 localement avec docker cp etc.
docker cp container:/lib64/mysql/libmysqlclient.so.18.0.0 local_path
libmysqlclient.so.18 dans LambdaLe chemin de la bibliothèque sur le conteneur Lambda est ↓, donc
LD_LIBRARY_PATH=/var/lang/lib:/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib:/opt/lib
Vous devez vous assurer que libmysqlclient.so.18 est placé dans le chemin ci-dessus lorsqu'il est placé dans le conteneur Lambda.
Les fichiers de la couche sont développés dans / opt, mais .so doit être à la position / opt / lib.
venv / lib / site-packages comme une couche, mettez .so dans venv / lib / site-packages / lib.Il sera développé en / var / task, donc créez lib et mettez-y .so.
Recommended Posts