如何在lambda aws中使用图层导入numpy?

6vl6ewon  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(205)

我试图将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中使用图层。

luaexgnf

luaexgnf1#

至少有两种方法可以将NumPy作为图层添加到AWS Lambda:
1.添加AWS(托管)图层:
从Lambda控制台中,选择AWS LayersAWSSDKPandas-Python39(根据您的Python版本选择一个层)。由于Pandas是在NumPy之上构建的,因此添加这个Pandas层后,您应该能够使用NumPy。

1.添加自定义层:
在本地计算机上创建虚拟环境,安装NumPy,创建zip文件,并作为层上传到AWS。确保本地虚拟环境中的Python版本与Lambda相同。逐步说明here。这是一种常规方法,可用于将任何外部Python库添加为Lambda层。

相关问题