我正在尝试在aws lambda中导入python部署包。python代码使用numpy。我遵循了虚拟环境的部署包说明,但它仍然给出了缺少的必需依赖项'numpy‘。我按照stack overflow上给出的说明操作(跳过共享库的步骤4,找不到任何共享库),但没有成功。有什么建议可以让它工作吗?
发布于 2018-08-31 17:20:17
最简单的方法是使用亚马逊网络服务Cloud9,不需要启动EC2实例和准备部署包。
步骤1:启动Cloud9集成开发环境
<代码>H111单击创建环境<代码>H212<代码>F213
步骤2:创建Lambda函数
IDE Select runtime (Python3.6)和blueprint (empty-python)
步骤3:安装Numpy
cd应用程序
venv/bin/pip安装numpy -t。
Step4:测试安装
将numpy导入为np def lambda_handler(event,context):返回更改并单击屏幕顶部的绿色Run按钮
响应0.8414709848078965
步骤5:部署Lambda函数
在屏幕右侧选择您的Lambda function
cloud9-ApplicationName-FunctionName-RandomString
发布于 2018-03-19 15:56:34
使用Numpy真的很痛苦。
Numpy需要在运行时在相同的操作系统上正确编译。这意味着您需要在AMI镜像上安装/编译Numpy,以便它在Lambda中正常运行。
要做到这一点,最简单的方法是启动一个小EC2实例并将其安装在那里。然后复制编译后的文件(从/usr/lib/python/site-package/numpy)。这些是您需要包含在Lambda包中的文件。
我相信您也可以使用serverless工具来实现这一点。
发布于 2018-05-10 18:25:56
NumPy必须在运行它的平台上编译。最简单的方法是使用Docker。Docker有一个lambda容器。使用lambda容器在Docker中本地编译NumPy,然后推送到AWS lambda。
如果您想要一个简单的解决方案,serverless框架可以为您处理所有这些问题。请参阅https://stackoverflow.com/a/50027031/1085343
https://stackoverflow.com/questions/43859497
复制相似问题