【问题标题】:Install PyProj as a layer in AWS Lambda在 AWS Lambda 中将 PyProj 安装为层
【发布时间】:2021-05-28 11:43:09
【问题描述】:

我正在尝试将 Pyproj 安装到 Lambda 中。 为此,我使用了以下代码:

mkdir folder
cd folder
virtualenv v-env
source ./v-env/bin/activate
pip3 install pyproj
deactivate
mkdir pyproj
cd pyproj
cp -r ../v-env/lib64/python3.6/site-packages/* .
cd ..
zip -r pyproj_layer.zip pyproj 
aws lambda publish-layer-version --layer-name pyproj --zip-file fileb://pyproj_layer.zip --compatible-runtimes python3.6

一切正常,图层出现在我已添加到我的函数中的 Lambda 中。

然后我尝试使用import pyproj 命令调用它,我收到了这个错误

Response
{
  "errorMessage": "Unable to import module 's3_asset_function'"
}

Function Logs
START RequestId: aece5dcf-9fa6-4557-9682-effffffb6d7c Version: $LATEST
Unable to import module 's3_asset_function': No module named 'pyproj'

压缩和发布层没有问题,我尝试通过 python 解释器在我的虚拟环境中导入 pyproj,它工作正常。所以我很困惑问题出在哪里,无法在 Lambda 中调用。

【问题讨论】:

  • 您是否创建了包含所有依赖项的适当 requirements.txt?此外,必须针对类似于 lambda 容器的正确环境进行构建。我正在使用以下 docker 来构建 lambci/lambda

标签: python amazon-web-services aws-lambda pyproj


【解决方案1】:

zip 文件必须包含一个名为“python”的文件夹,并且该文件夹必须包含库。在此处查看确切的结构: https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path

Pillow 库的示例文件结构

pillow.zip
│ python/PIL
└ python/Pillow-5.3.0.dist-info

您的 zip 中似乎缺少该文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    • 2017-12-29
    • 2020-03-11
    • 2016-09-28
    • 1970-01-01
    • 2019-07-31
    • 1970-01-01
    相关资源
    最近更新 更多