gpt4 book ai didi

python - 在AWS lambda函数中使用scrapy作为层

转载 作者:太空宇宙 更新时间:2023-11-03 21:11:45 26 4
gpt4 key购买 nike

我正在尝试在AWS lambda函数中使用scrapy作为一个层。

我使用pip在我的目录中安装scrapy:

pip install scrapy 

目录格式与我已经工作的所有层相同。我压缩并上传到图层中。我将该层包含到 lambda 函数中。我导入了scrapy:

import scrapy

当我运行该项目时,我收到此错误:

{
"errorMessage": "Unable to import module 'lambda_function'"
}

Unable to import module 'lambda_function': /opt/python/lxml/etree.so: invalid ELF header

最佳答案

正如 @balderman 的评论所暗示的那样,您需要本地库才能运行 scrapy。这是非常可行的,我会尽量简单地解释。

scrapy 的二进制文件必须在与 lambda 实例相同的环境中编译。 Lambda 使用 AWS Linux 启动。

您可以启动运行 AmazonLinux 的 EC2 或使用 docker,最简单的方法是启动 docker 容器。

$ sudo docker run -it amazonlinux bash

现在您需要将所有 .so 文件下载/解压到一个目录中,然后将其压缩。另外,请确保将所有 .so 文件保存在 zip 内名为 lib 的文件夹中。压缩后,zip 应该类似于以下内容:

.
├── lib
│ ├── libcrypto.so.10
│ ├── libcrypto.so.1.0.2k
│ ├── libfontconfig.so.1
│ ├── libfontconfig.so.1.7.0
.......

然后您可以将其压缩并作为图层上传。它将上传到您的 Lambda 容器中的/opt/。 AWS 在 many other locations 中的/opt/lib 下查找库文件.

对您来说,具有挑战性的部分是弄清楚如何获取所有必需的 .so 文件,以便 scrapy 正常运行。

关于python - 在AWS lambda函数中使用scrapy作为层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55022402/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com