我试图将numpy包添加到我的lambda函数中,但是我无法导入它。
我已经遵循了几个教程,但它们都有同样的问题。在我最后一次尝试时,我一步一步地执行了以下操作:
- 我在AWS中创建了一个lambda函数并对其进行了测试
- 在我的本地机器上安装了numpy软件包并压缩了它
- 创建lambda层并加载numpy包
- 将层固定为lambda并进行测试
当我运行我的lambda函数而不导入numpy时,它运行得很好,但是当我导入它时,我得到这个错误:
{
"errorMessage": "Unable to import module 'lambda_function': No module named 'numpy'",
"errorType": "Runtime.ImportModuleError",
"requestId": "0153834a-6b28-44d1-889f-3e2e3ead9c4a",
"stackTrace": []
}
这是论坛上非常常见的错误,但是lambda_function
的一切都很好,因为正如我所说,如果我不导入任何模块,它就可以正常工作。
- lambda_函数.py
import json
import numpy
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
我想学习如何在Lambda中使用图层。
1条答案
按热度按时间luaexgnf1#
至少有两种方法可以将NumPy作为图层添加到AWS Lambda:
1.添加AWS(托管)图层:
从Lambda控制台中,选择
AWS Layers
和AWSSDKPandas-Python39
(根据您的Python版本选择一个层)。由于Pandas是在NumPy之上构建的,因此添加这个Pandas层后,您应该能够使用NumPy。1.添加自定义层:
在本地计算机上创建虚拟环境,安装NumPy,创建zip文件,并作为层上传到AWS。确保本地虚拟环境中的Python版本与Lambda相同。逐步说明here。这是一种常规方法,可用于将任何外部Python库添加为Lambda层。