pycripto和AWS-Lambda出错

时间:2016-05-28 18:04:20

标签: python aws-lambda pycrypto

我尝试使用pycrypto和lambda服务,但每次运行我的脚本lambda服务都返回:

  

无法导入模块' service':/var/task/Crypto/Cipher/_AES.so:   无效的ELF标题

如果有人遇到同样的问题,我不知道为什么会发生,请帮助我。

谢谢大家。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题,不得不在Linux VM上构建我的可部署zip。

作为此comments中的alex-luminul issue,可能是由于OSX兼容的共享库_AES.so被发送到Lambda,Lambda需要Linux兼容的共享库。

答案 1 :(得分:0)

有些人预先编译了一些python包,以便在AWS Lambda中使用。例如,pip包lambda_packages和名为awslambda-pycrypto的GitHub存储库。

我选择了后者,因为我在我的函数中只需要PyCrypto。为了使用它,我下载了awslambda-pycrypto存储库,然后将文件放在名为“modules”的目录中,然后我加载了代码:

import sys
sys.path.insert(0, "./modules")
from Crypto.Cipher import AES

然后,您必须压缩包含您的功能的目录并将其上传到Lambda。