当我上传 zip 文件时,AWS 成功创建了 lambda 函数。但是当我测试它时它给出了这个错误。
{
"errorMessage": "Unable to import module 'amazonSNS'"
}
以下是我创建的 zip 文件的内容。我尝试将 zip 文件的名称更改为“amazonSNS”以匹配 amazonSNS.py
文件,但没有帮助,同样的问题。
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 文件的当前内容。
然后是新的错误日志。
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/