python - 将 Python 包部署到 AWS Lambda 时出错

标签 python amazon-web-services lambda

当我上传 zip 文件时,AWS 成功创建了 lambda 函数。但是当我测试它时它给出了这个错误。

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

以下是我创建的 zip 文件的内容。我尝试将 zip 文件的名称更改为“amazonSNS”以匹配 amazonSNS.py 文件,但没有帮助,同样的问题。

enter image description here

Lambda 函数配置中的 Lambda 处理程序设置为“amazonSNS.handler”,其中 amazonSNS 是文件名,handler 是需要调用的函数名称,如文档中所述。

这是python文件的内容

import boto3
import MySQLdb

client = boto3.client("sns")
rds = boto3.client("rds")

def handler(event, context):
    conn = MySQLdb.connect("host", "username", "password", "database")
    cur = conn.cursor(MySQLdb.cursors.DictCursor)
    query = "select * from login.login limit 10"
    cur.execute(query)
    print cur.fetchall()
    print conn

这可能是什么问题?

这是日志输出

START RequestId: 76a61551-052a-11e6-b466-8fa0769ac309 Version: $LATEST Unable to import module 'amazonSNS': No module named _mysql

END RequestId: 76a61551-052a-11e6-b466-8fa0769ac309 REPORT RequestId: 76a61551-052a-11e6-b466-8fa0769ac309 Duration: 0.33 ms Billed Duration: 100 ms

更新

我从“site-package”文件夹中添加了一些文件,我认为它们是 MySQLdb 包的一部分,这是 zip 文件的当前内容。

enter image description here

然后是新的错误日志。

START RequestId: c0715d9a-0531-11e6-9409-a3b194fd4afd Version: $LATEST Unable to import module 'amazonSNS': libmysqlclient.so.18: cannot open shared object file: No such file or directory

END RequestId: c0715d9a-0531-11e6-9409-a3b194fd4afd REPORT RequestId: c0715d9a-0531-11e6-9409-a3b194fd4afd Duration: 0.35 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 22 MB

最佳答案

解决这个问题: 我搜索了libmysqlclient.so.20(最后的版本号可能不同)

find /. -name "libmysqlclient.so.20"

我的输出是

/./usr/lib/x86_64-linux-gnu/libmysqlclient.so.20

然后我将该文件复制到包的根目录中

cp /usr/lib/x86_64-linux-gnu/libmysqlclient.so.20 <your package path>

关于python - 将 Python 包部署到 AWS Lambda 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36686376/

相关文章:

python - Ansicon 不能从 python 安装,只能从 cmd 安装

java - Dynamodb 无法创建表

c++ - 使用 lambdas 将模板类型的成员作为异常抛出

java - 通用类型的流图

python - 模块未找到错误: No module named 'tflearn' problem

python - 在没有 Internet 访问的情况下安装 Python 模块

Python 多处理 - 如何将 kwargs 传递给函数?

deployment - 如何将大约 java 应用程序部署到大约 100 个 EC2 实例?

amazon-web-services - AWS ECS Fargate 任务时区

c# - 有没有办法指定 "empty"C# lambda 表达式?