我试图使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
,关于如何使代码运行的任何建议?
您可以尝试使用此模块代替默认模块(仅支持Python3.x)
https://pypi.org/project/aws-psycopg2/
尽管上述内容未得到积极维护,并且其最大版本为psycopg2==2.8.4
,但它可以满足您可能拥有的用例。
如果您需要支持较旧的python版本,也可以尝试从此处https://github.com/jkehler/awslambda-psycopg2压缩并上传该软件包。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句