psycopg2的AWS Lambda问题

时间:2018-07-26 19:27:55

标签: python amazon-web-services amazon-ec2 aws-lambda psycopg2

我正在尝试将psycopg2导入我的python 3.6 lambda函数中,但是我一直遇到错误消息'Unable to import module 'lambda_function': /var/task/psycopg2/_psycopg.cpython-36m-x86_64-linux-gnu.so: ELF file's phentsize not the expected size'

我正在通过AWS控制台将zip文件直接上传到lambda函数中。我已经尝试过使用https://github.com/jkehler/awslambda-psycopg2库,但是给了我同样的信息。

我已经能够在EC2实例(Amazon Linux AMI 2018.03.0(HVM))上成功运行脚本,甚至尝试将EC2实例psycopg2库上传到lambda,但仍然可以继续使用相同的错误消息。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

在尝试上传包含Lambda的.zip时,我也遇到了这个问题。对我来说,问题是我从上面的一个目录压缩了Lambda。

该解决方案是在包含Lambda函数本身的目录中运行zip命令,而不是从其父目录中运行zip。

例如,如果您的lambda函数以lambda_function.py的形式存在于〜/ lambda目录中,并且还包含任何其他库(即多处理)-您应通过执行以下操作来压缩Lambda部署包。

$ cd ~/lambda
$ zip lambda_function.zip lambda_function.py
$ zip -r lambda_function.zip multiprocessing* 

上传生成的.zip文件应该可以解决此问题。