psycopg2的AWS Lambda问题

Yit*_*dez 4 python psycopg2 amazon-ec2 amazon-web-services aws-lambda

我正在尝试将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上,但我仍然收到相同的错误消息。

任何帮助,将不胜感激。

小智 5

尝试上传包含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* 
Run Code Online (Sandbox Code Playgroud)

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

  • 是的,我应该在这里发布解决方案,但我正在做完全相同的事情并得出相同的结论。将 lambda 函数向上压缩一个目录,然后在 Lambda UI 中向下移动它们显然是 AWS 的一大禁忌。 (2认同)
  • 为什么以这种方式压缩功能会有所不同? (2认同)