psycopg2 不适用于 AWS Lambda 上的无服务器框架部署
psycopg2 does not work with Serverless framework deployment on AWS Lambda
我正在尝试让 lambda 函数连接到 Redshift,并通过无服务器框架部署它。
serverless.yml 配置:
pythonRequirements:
dockerizePip: non-linux
dockerFile: ./Dockerfile
Docker 文件:
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
,关于如何获取代码的任何建议 运行?
您可以尝试使用此模块而不是默认模块(仅支持 Python3.x)
https://pypi.org/project/aws-psycopg2/
虽然上面没有积极维护,并且最大版本为 psycopg2==2.8.4
,但它可以满足您可能拥有的用例。
如果您需要对旧 python 版本的支持,您也可以尝试从此处 https://github.com/jkehler/awslambda-psycopg2 压缩和上传包。
我正在尝试让 lambda 函数连接到 Redshift,并通过无服务器框架部署它。
serverless.yml 配置:
pythonRequirements:
dockerizePip: non-linux
dockerFile: ./Dockerfile
Docker 文件:
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
,关于如何获取代码的任何建议 运行?
您可以尝试使用此模块而不是默认模块(仅支持 Python3.x)
https://pypi.org/project/aws-psycopg2/
虽然上面没有积极维护,并且最大版本为 psycopg2==2.8.4
,但它可以满足您可能拥有的用例。
如果您需要对旧 python 版本的支持,您也可以尝试从此处 https://github.com/jkehler/awslambda-psycopg2 压缩和上传包。