如何在AWS LAMBDA在Python运行的SQLAlchemy

问题描述 投票:2回答:1

我准备很简单的文件,以便连接外部MySQL数据库服务器,如下图所示:

from sqlalchemy import *

def run(event, context):
    sql = create_engine('mysql://root:[email protected]/scraper?charset=utf8');
    metadata = MetaData(sql)

    print(sql.execute('SHOW TABLES').fetchall())

在AWS上不起作用,但在本地Windows上运行完美。

接下来,我通过pip install sqlalchemy --target my/dir安装和准备ZIP文件包上传到AWS LAMBDA。

运行,但失败的消息No module named 'MySQLdb': ModuleNotFoundError

然后,我用pip install mysqlclient --target my/dir,创建ZIP和重新上传到AWS LAMBDA。

运行,但随着新的失败的消息cannot import name '_mysql': ImportError

所以,我现在应该怎么做?

python mysql amazon-web-services aws-lambda mysql-python
1个回答
2
投票

SQLAlchemy的包括各种后端许多方言的实现。方言为最常见的数据库中包含的SQLAlchemy的;其他极少数需要额外安装一个单独的方言。

MySQL的方言使用MySQL的Python作为默认DBAPI。有很多的MySQL DBAPIs可用,包括MySQL连接器,Python和OurSQL

取而代之的mysql你可以使用mysql+mysqlconnector

sql = create_engine('mysql+mysqlconnector://root:[email protected]/scraper?charset=utf8')

然后使用:

pip install mysql-connector --target my/dir

创建Zip和重新上传到AWS LAMBDA。

© www.soinside.com 2019 - 2024. All rights reserved.