Estoy tratando de hacer que una función lambda se conecte a Redshift e implementar lo mismo a través de The Serverless Framework.
configuración serverless.yml:
pythonRequirements: dockerizePip: non-linux dockerFile: ./Dockerfilearchivo acoplable:
FROM lambci/lambda:build-python3.6 RUN yum install -y postgresql-devel postgresql-libsrequisitos.txt
psycopg2==2.8.5 requests==2.22.0 boto3==1.9.234El despliegue se realiza a través de:
sls deploy --function fn_name --forceAWS Lambda da un error:
libpq.so.5: cannot open shared object file: No such file or directory Y puedo confirmar que falta, pero cuando pruebo lo mismo con la imagen de la ventana acoplable local, el archivo está presente. Todavía no estoy seguro de cómo serverless realmente implementa el paquete
No quiero usar psycopg2-binary y todavía no estoy seguro acerca aws-psycopg2 , ¿alguna sugerencia sobre cómo hacer que se ejecute el código?
Puede intentar usar este módulo en lugar del predeterminado (solo admite Python3.x)
https://pypi.org/project/aws-psycopg2/
Si bien lo anterior no se mantiene activamente y tiene la versión máxima como psycopg2==2.8.4 , podría servir para el caso de uso que pueda tener.
También puede intentar comprimir y cargar el paquete desde aquí https://github.com/jkehler/awslambda-psycopg2 si necesita soporte para versiones anteriores de Python.