无法导入模块 'lambda_function':在 python 的 AWS 上没有名为 'twilio' 的模块

Unable to import module 'lambda_function': No module named 'twilio' on AWS with python

回复:

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

Unable to import module 'lambda_function': No module named 'plivo'

  1. 使用命令(使用 sudo pip3 install plivo-t)在 Ubuntu 机器上下载 Twilio 库并压缩 Twilio 库。
  2. 库添加到图层并连接到当前的 Lambda 函数。请在上图中找到我的 lambda 函数代码。
  3. 当我测试函数时,显示错误,如 "Unable to import module 'lambda_function': No module named 'plivo'"。请在上图中找到执行结果。

我下载了 Plivo 库并将其压缩,然后将其上传到 AWS lambdas 函数中的层。我将该层连接到当前函数,然后当我测试该函数时,它显示 "Unable to import module 'lambda_function': No module named 'plivo '".

之类的错误

代码:

import json
import requests
import plivo
#from twilio.rest import Client #I added Layers. That is twilios library zi
def lambda_handler(event, context):
    return {'statusCode': 200, 'body': json.dumps('Hello from Lambda!') }

如何使用 python 下载库并将其导入 lambda 函数? 具体来说,我的问题是关于如何在 AWS Lambda 函数中导入 Twilio 库。

您的 .zip 文件的结构是什么?它是否有一个名为 "python" 的顶级文件夹,其他所有内容都在其中?还是在这个文件夹路径中:python/lib/python3.7/site-packages?请确保您匹配层源代码的必要结构,如下所述:https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path

To include libraries in a layer, place them in one of the folders supported by your runtime. Python – python, python/lib/python3.7/site-packages (site directories)

Example Pillow

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

也有同样的问题。我的原因是 folders/files 权限。我只是将它们全部设置为 777 (chmod -R 777 python/)。并与文档中的操作相同:https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html#configuration-layers-path

成功了!