我有一个 AWS Lambda 函数 (Python3.8),我在其中尝试使用 SQLAlchemy 连接到 RDS 代理。我已经确认函数配置将通过直接使用 PyMySQL 连接到代理来实现这一点。当我运行该函数时,我收到错误消息“(pymysql.err.InternalError) (3159, 'This RDS Proxy requires TLS connections')\n(Background on this error at: 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
我尝试过的事情与以下有关
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'
,仍然从同一行引发。
最佳答案
当我尝试使用来自 lambda 的 RDS 代理连接到 RDS 时,我遇到了同样的问题。由
修复https://stackoverflow.com/questions/63766860/
相关文章:
python - 为什么在 Python 3.x 中的循环中使用 list() 会返回内存错误?
flutter - 如何在 Flutter 中绘制尖三角形边?
python - 使用 tokenizer.encode_plus 时遇到问题
react-native - 如何使选项卡栏图标的溢出在 React Native 中可点击?
reactjs - CRA typescript环境导出类型时如何解决解析错误
post - ESP32 异步 Web 服务器 POST 方法不起作用
react-native - 如何在没有 Firebase 的情况下为 React Native A