【发布时间】:2020-11-20 01:33:17
【问题描述】:
我正在编写一个 Python 脚本(Mac OS 10.15.7 上的 Python 版本 3.7),我打算将它放在我们的 AWS Lambda 服务器上,并且该脚本使用 Paramiko。它在我的 IDE 和命令行中运行得非常好,但是当我尝试在 Lambda 上运行它时,我收到以下错误消息:
{
"errorMessage": "Unable to import module 'lambda_function': libs/bcrypt/_bcrypt.abi3.so: invalid ELF header",
"errorType": "Runtime.ImportModuleError"
}
我在 Stack Overflow 上找到了this similar-looking question,但该问题的答案似乎不适用于这种情况,因为它们与 Windows 和不同的 Python 库有关。但也许我错过了什么?
编辑:可能相关的是我的计算机安装了 Python 3.9,但我正在尝试用 Python 3.7 编写它。
【问题讨论】:
-
您是如何将
Paramiko与您的 lambda 捆绑在一起的? -
根据我的经验,当操作系统缺少一个包时,linux 通常会抛出一个“无效的 ELF 头”,在 Arch linux 的情况下,binutils。作为旁注,您链接的问题是检查“.pyd”文件,但“.so”文件是有效的 ELF 文件,特别是要在运行时链接的二进制库。
-
@Marcin 我将 Paramiko 安装到 Lambda 上,方法是将它安装在我的脚本所在的目录中,然后压缩目录并将压缩文件上传到 Lambda。
-
你必须为它创建层
-
@aviboy2006 谢谢。这意味着什么?
标签: python amazon-web-services aws-lambda paramiko