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.6
libmysqlclient.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.6
pip 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.18
Vous 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