【问题标题】:AWS Lambda LayerAWS Lambda 层
【发布时间】:2019-02-15 16:36:45
【问题描述】:

我正在尝试将 pandas 库导入到我的 aws lambda 层。但是给出了一个错误,说不能导入 lambda.function: no module names numpy.

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

【问题讨论】:

  • 有时可能会发生这种情况,因为该库正在使用 Lambda 无法访问的操作系统库依赖项,所以我做的一件事是使用库来嵌入操作系统依赖项我在 Lambda 中使用的库

标签: python pandas amazon-web-services numpy aws-lambda


【解决方案1】:

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

1) 如果您的代码中使用 pandas 的部分可以替换为其他 Python 处理方式(defaultdict、dict、列表等),我建议 2)您可以尝试在 linux 环境中压缩依赖项(pandas 或您进行 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

【讨论】:

    【解决方案2】:

    如果您使用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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-01
      • 2021-11-01
      • 2023-01-31
      • 2020-04-03
      • 2020-11-21
      • 1970-01-01
      • 2020-05-29
      • 2020-03-01
      相关资源
      最近更新 更多