Ada*_*dam 6 mysql sqlalchemy amazon-rds aws-lambda python-3.8
我有一个 AWS Lambda 函数 (Python3.8),在其中尝试使用 SQLAlchemy 连接到 RDS 代理。我已经确认函数配置将允许使用 PyMySQL 直接连接到代理。当我运行该函数时,我收到一条错误消息“(pymysql.err.InternalError) (3159, '此 RDS 代理需要 TLS 连接')\n(此错误的背景位于:http://sqlalche.me/e /2j85 )”。该错误的“背景”没有提及 TLS。我明白我需要做什么(告诉 SQLAlchemy 使用 SSL/TLS 连接),但我无法弄清楚这样做的语法。下面是我当前的代码。
import pymysql
import sqlalchemy
from database_info import make_connection_str
print('connecting to database')
CONN_STR = make_connection_str()
ENGINE = sqlalchemy.create_engine(CONN_STR)
METADATA = sqlalchemy.MetaData(ENGINE)
TABLE = sqlalchemy.Table('active_prospect', METADATA, autoload=True) #error comes with this line
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情与以下内容有关
ssl-mode=REQUIRED是需要的。pymysql.connect(... ssl={"true": True})作品。基于这两件事,我以两种不同的方式尝试了 (ssl-mode, ssl) = ('true', 'required') 的每种组合。
CONN_STR += '?ssl-mode=REQUIRED'create_engine(CONN_STR, connect_args={'ssl': 'True'})结果各不相同。在某些情况下,上面的错误已被替换AttributeError: 'str' object has no attribute 'get',但仍然从同一行引发。
小智 -2
当我尝试使用 lambda 的 RDS 代理连接到 RDS 时,我遇到了同样的问题。已修复
| 归档时间: |
|
| 查看次数: |
6366 次 |
| 最近记录: |