我试图使lambda函数连接到Redshift,并通过The Serverless Framework进行部署。
serverless.yml配置:
pythonRequirements:
dockerizePip: non-linux
dockerFile: ./Dockerfile
Dockerfile:
FROM lambci/lambda:build-python3.6
RUN yum install -y postgresql-devel postgresql-libs
requirements.txt
psycopg2==2.8.5
requests==2.22.0
boto3==1.9.234
部署通过以下方式完成:
sls deploy --function fn_name --force
AWS Lambda给出错误:
libpq.so.5: cannot open shared object file: No such file or directory
我可以确认它是否丢失,但是当我使用本地docker映像进行测试时,该文件存在。我仍然不确定serverless
如何实际部署程序包
我不想使用psycopg2-binary
,但是我仍然不确定aws-psycopg2
,关于如何使代码运行的任何建议?
答案 0 :(得分:2)
您可以尝试使用此模块代替默认模块(仅支持Python3.x)
https://pypi.org/project/aws-psycopg2/
虽然上述内容未得到积极维护,并且最大版本为psycopg2==2.8.4
,但可以满足您可能拥有的用例。
如果需要对较早的python版本的支持,也可以尝试从此处https://github.com/jkehler/awslambda-psycopg2压缩并上传软件包。