像我之前的许多人一样,我试图运行一个AWS Lambda函数,当我试图测试它时,我得到
"errorMessage": "Unable to import module 'lambda_function'"
我的处理程序设置为lambda_function.lambda_Handler,并且我确实有一个名为lambda_function.py的文件,其中包含一个名为lambda_Handler的函数。这是一张截图作为证据:
当我在包含的IDE中内联地编写代码片段时,一切正常,但是当我压缩完整的程序及其所有依赖项并将其上载时,我得到了上述错误。
我使用的是Numpy和Scipy软件包,它们相当大。我的压缩目录是34MB,解压缩目录是122MB。我认为这应该没问题,因为压缩目录的限制是50MB。似乎上传得很好,因为我看到消息:
The deployment package of your Lambda function "one-shot-image-classification" is too large to enable inline code editing. However, you can still invoke your function right now.
我已经看到一些帖子通过使用virtualenv解决了这个问题,但我不熟悉这项技术,也不知道如何正确使用它。
我也看到一些文章说,有时依赖关系有依赖关系,我可能需要包括这些,但我不确定如何找到这一点。
下面是lambda_function.py的顶部,它应该足以看到我正在使用的库,并且我确实有一个lambda_handler函数:
import os
import boto3
import numpy as np
from scipy.ndimage import imread
from scipy.spatial.distance import cdist
def lambda_handler(event, context):
s3 = boto3.resource('s3')
如果有问题,我还可以发布Lambda正在使用的策略角色。
任何洞察都是非常感激的!
更新:
我试过一个办法:
一。git clone https://github.com/Miserlou/lambda-packages
2。在名为new_lambda的文档中创建文件夹
三。将lambda_function.py和numpy文件夹从lambda包复制到new_lambda中,以及根据本文使用Docker for AWS编译的scipy库:https://serverlesscode.com/post/scikitlearn-with-amazon-linux-container/
四。右键单击并选择“压缩”来压缩新的“lambda”文件夹
我的结果:
Unable to import module 'lambda_function': No module named 'lambda_function'
重申一下,我的文件名为lambda_function.py,它包含一个名为lambda_handler的函数,该函数接受两个参数(如上所示)。此信息与上面在Handler中看到的信息相匹配。
如果有关系的话,我用的是Mac电脑。
更新2
如果我按照上面的步骤操作,但是通过直接选择要压缩的文件,然后右键单击并选择“压缩”来压缩文件,则会出现错误
Unable to import module 'lambda_function': cannot import name 'show_config'
另外,预编译的lambda包表示它们是为“至少Python 2.7”编译的,但是我的lambda运行时是3.6。这可能是个问题吗?
解决方案是压缩来自this源的numpy和scipy预编译包。
我也有类似的问题:
对我和可能对您来说,修复方法是在lambda_function.py所在的目录中包含一个空的
__init__.py
。为什么
__init__.py
要解决这个问题?我知道目录(在我的例子中是lib)需要它。在您的)中被视为有效的Python包。
这是一份参考文件,基于以下假设: 5.2.1. Regular packages - Python 3.7.3 documentation
问题是,您的本地numpy和pandas是为本地机器的体系结构编译的。因为AWS Lambda使用定制Linux,所以它们可能不兼容。
所以如果你想使用它们,你有两个选择:
编译对使用相同Amazon Linux的EC2实例的依赖关系 版本为AWS Lambda并创建部署包。
使用here中的一个预编译包
另外,我已经阅读了一篇文章的评论,所以我发现文件和函数的名称没问题,numpy给你带来了麻烦。
相关问题 更多 >
编程相关推荐