我正在尝试使用以下命令访问我们的服务器MySQL数据库(不是AWS RDS):
def lambda_handler(event, context):
try:
conn = pymysql.connect("mySite.com", user="admin", passwd="pass", connect_timeout=5)并且我得到了返回错误:
Response:
{
"errorMessage": "xxxxxxxxxxxxxxxxxxxxxxxxx Task timed out after 3.00 seconds"
}我已经在AWSLambdaVPCAccessExecutionRole和WSLambdaRole上设置了自己的角色,并设置了一个包含子网和安全组的默认VPC网络:
Security group ID: sg-xxxxxxxx
Ports: All
Destination: 0.0.0.0/0 我是不是忘了什么?我用RDS测试了这一点,我能够连接到数据库,只是当我尝试外部数据库时,它超时了。

发布于 2019-09-19 03:29:41
如果数据库不在VPC中,那么Lambda函数将无法访问它。在私有网络内运行Lambda函数时,不会为Lambda函数分配公网IP地址。要使其能够访问VPC外部的资源,Lambda功能必须位于私有子网中,并具有到NAT网关的路由。
或者,如果它不需要访问VPC内的资源,则只需将其从VPC中移除即可访问Internet。
如果数据库位于运行EC2服务器的私有网络中,则可能需要相应地打开分配给EC2服务器的安全组。
https://stackoverflow.com/questions/57999317
复制相似问题