AWS Lambda 中的 PyMySql - 对等点重置连接
Posted
技术标签:
【中文标题】AWS Lambda 中的 PyMySql - 对等点重置连接【英文标题】:PyMySql in AWS Lambda - Connection Reset By Peer 【发布时间】:2019-03-20 05:03:55 【问题描述】:我目前正在尝试使用 AWS Lambda 中的 Pymysql python 库在我们的本地环境中查询 Sql Server。
我要做的就是使用以下代码创建我的连接对象:
import pymysql
def lambda_handler(event, context):
conn = pymysql.connect(
host = 'MYSERVER',
port = 1433,
user = 'acctname',
passwd = 'acctpass',
db = 'dbName'
)
如果没有以下错误消息,我什至无法通过这个:
(2013, 'Lost connection to MySQL server during query ([Errno 104] Connection reset by peer)')
我可以确认端口和凭据是否正确。
我希望这不是 AWS 中 lambda 的限制。如果我可以从 Lambda for SQL Server 中利用任何其他服务或库,请告诉我!
编辑:我的 lambda 在连接到我的本地环境的 VPC 中运行。
【问题讨论】:
Lambda 函数是否配置为在 VPC 内运行?另外,您的本地服务器前是否有防火墙需要打开? 我应该提到,是的,我的 lambda 在 VPC 中运行。不,本地数据库前面不应该有防火墙客栈。我现在正在验证。 【参考方案1】:对于在 VPC 内运行以访问 VPC 外部任何内容的 AWS Lambda 函数,它必须位于 VPC 的私有子网中,该子网包含到 NAT 网关的路由。 VPC 内的 Lambda 函数没有公共 IP 地址,因此您必须通过 NAT 提供 Internet 访问。
【讨论】:
以上是关于AWS Lambda 中的 PyMySql - 对等点重置连接的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 3.6 将 pymysql 模块安装到 AWS Lambda [重复]
AWS 无法导入模块“app”:没有名为 Pymysql 的模块