AWS Lambda层

时间:2019-02-15 16:36:46

标签: amazon-web-services aws-lambda

我正在尝试将熊猫库导入到我的aws lambda层。但是给出错误消息说无法导入lambda.function:没有模块名称numpy。

能不能解释一下熊猫和aws的问题。当我尝试使用SAM在pycharm上本地运行时,会引发相同的错误。

2 个答案:

答案 0 :(得分:1)

Lambda作为上传的zip文件或代码的一部分,限制为125 MB,通常,Pandas / Numpy是巨大的库,它们有可能超过这些限制。因此

1)如果可以将使用熊猫的代码部分替换为其他pythonic的工作方式(defaultdict,dict,列表等),则建议 2)您可以尝试在Linux环境中压缩依赖关系(熊猫或其他与pip一起安装的其他库),就像Lambdas在Linux环境中一样。您可以阅读这篇文章:https://medium.com/i-like-big-data-and-i-cannot-lie/how-to-create-an-aws-lambda-python-3-6-deployment-package-using-docker-d0e847207dd6 3)您可以按照以下步骤操作:https://medium.com/@qtangs/creating-new-aws-lambda-layer-for-python-pandas-library-348b126e9f3e

答案 1 :(得分:0)

如果您使用的是AWS Lambda Layers,则需要验证您的目录结构是否在图层所需的结构上:

例如,对于pillow python模块,您需要以下结构:

aws-lambda-layer.zip
│ python
│ python/PIL
└ python/Pillow-5.3.0.dist-info

因此,要创建具有正确结构的层zip文件,我们可以在项目的根目录上使用以下命令:

mkdir -p python && cp -r <lib_name> python/ && zip -r aws-lambda-layer.zip python