使用IAM用户身份验证连接到Aurora MySQL的Python示例

时间:2019-06-07 14:40:38

标签: python mysql amazon-web-services amazon-iam aurora

我正在使用python连接到Aurora数据库。当我具有静态用户名和密码时,一切正常;

我正在尝试使用经过IAM身份验证的用户,并且该用户已设置,并且可以使用MySQL Workbench很好地工作

我正在尝试使用python连接使用SQLAlchemy-这应该是没有头脑的,但是它不起作用

from _collections import OrderedDict
import datetime
from sqlalchemy import create_engine
from boto3 import client
# import pymysql

db_end_point = "yyyyyyyyyyyy.cluster-xxxxxxxxxxxx.eu-west-1.rds.amazonaws.com"

def get_db_password(cluster_end_point, user_name):
    rds_client = client('rds', region_name='eu-west-1')
    rds_token = rds_client.generate_db_auth_token(DBHostname=cluster_end_point, Port=3306, DBUsername=user_name, Region='eu-west-1')
    return rds_token

user_password = get_db_password(db_end_point, "svc_payment_data_write")
print(user_password)
url = "mysql://{}:3306/payment_data_store".format(db_end_point)
rds_credentials = {
    'user' : 'svc_payment_data_write', 'passwd' : user_password
}
kw = dict()
kw.update(rds_credentials)
print(kw)
engine = create_engine(url, connect_args=kw)
connection = engine.connect()

我也尝试用正确引用的密码字符串创建url。同一件事在JAVA中也能正常工作

0 个答案:

没有答案