【问题标题】:How can I import pandas on AWS lambda?如何在 AWS lambda 上导入熊猫?
【发布时间】:2019-11-09 14:40:34
【问题描述】:

我在尝试导入 pandas 时出错。我通过上传我的压缩包 pandas(从 Windows)创建了一个图层。我认为这是因为我在 Windows 上压缩了我的包,我没有正确的结构(如果压缩文件,我可以在 Linux 上获得相同的结构)。我阅读了很多教程,但都是基于mac或Linux的,有人有想法,要解决这个问题吗?

【问题讨论】:

  • 这需要更多信息,你得到了什么错误?你看见什么了?你尝试了什么?您是否找到了有关它的教程并按照步骤操作但卡在某个地方?是的,重试您所做的并记下所有步骤。并记下您遇到的错误。谷歌那个错误,看看你能找到什么。发布这些发现。
  • 在 linux docker 容器中构建您的 lambda 部署包,以规避在打包 pandas 时还会为在 linux 上运行的 lambda 打包不兼容的二进制文件的问题
  • 这是重复的。在这里查看我的答案stackoverflow.com/a/57837559/112233
  • 嗯,首先,您是如何部署基础架构的?您在使用 cloudformation、SAM、Terraform 等吗?我建议您使用 AWS 或 SAM cli 来打包和部署您的代码。检查此脚本:gist.github.com/MatteoGioioso/6fb37ff5a3ad71a39ced625609c554fc
  • 我会谨慎地将像熊猫一样大的包导入 Lambda。如果你真的需要 pandas,那么研究如何最小化它的大小。如果您只是将它用于一些次要的便利功能,请考虑自己编写。

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


【解决方案1】:

我做过这样的工作。使用 AWS Linux2 启动 EC2,然后使用 python3 创建一个 venv 和 pip pandas。

python3 -m venv /path/to/new/virtual/environment https://docs.python.org/3/library/venv.html

如果 pandas 和它的依赖是原生的,它将被创建。这可能就是在 windows 盒子上创建的 zip 失败的原因。我的失败是我创建了依赖于 OSX 的 venv,在 AWS Linux 上也无法使用:-D

您可能需要安装开发包。

yum groupinstall "开发工具"

按照此处的说明创建 zip 文件: https://docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package.html

获取 zip 文件并将其保存到 S3。

当您更新主 lambda 函数时,从 S3 拉出 zip 并更新您的 zip 并推送到 lambda

如果需要新包,请重新创建存储在 S3 上的基本 zip。

我编写代码来完成所有这些工作。因此,我不能只提供我编写的处理所有这些的 python。既然,工作。

如果您想在 docker 中构建和测试它,请使用此映像: https://github.com/lambci/docker-lambda

【讨论】:

    猜你喜欢
    • 2016-07-03
    • 2021-10-12
    • 2020-09-25
    • 2018-07-29
    • 1970-01-01
    • 2016-11-18
    • 2018-12-16
    • 2016-09-30
    • 2022-12-01
    相关资源
    最近更新 更多