psycopg2不适用于AWS Lambda上的无服务器框架部署

时间:2020-07-01 16:11:43

标签: amazon-web-services docker aws-lambda psycopg2 serverless-framework

我试图使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,关于如何使代码运行的任何建议?

1 个答案:

答案 0 :(得分:2)

您可以尝试使用此模块代替默认模块(仅支持Python3.x)

https://pypi.org/project/aws-psycopg2/

虽然上述内容未得到积极维护,并且最大版本为psycopg2==2.8.4,但可以满足您可能拥有的用例。

如果需要对较早的python版本的支持,也可以尝试从此处https://github.com/jkehler/awslambda-psycopg2压缩并上传软件包。