我正在尝试从我的VPC中的AWS Lambda连接到我的SQL Server RDS实例(使用.net核心)。
当我尝试运行Lambda函数时,它返回:
" errorType":" SqlException"," errorMessage":"连接超时已过期。在登录后阶段过去了超时时间。在等待服务器完成登录过程并响应时,连接可能已超时;或者在尝试创建多个活动连接时可能会超时。尝试连接到此服务器所花费的时间是 - [Pre-Login] initialization = 781;握手= 1957; [登录]初始化= 40;认证= 122; [登录后]完成= 12219;",
我已配置以下内容:
连接字符串如下所示(使用Dapper作为我的ORM)
string dbconnstr = @"server=vpc100-db.xyz.us-west-1.rds.amazonaws.com;database=dbMyDb;user id=sa;password=mypwd;";
知道我错过了什么吗?
答案 0 :(得分:1)
解决。数据库引擎版本是个问题。
事实证明,这不是Lambda或VPC和RDS的权限问题。无法从Lambda(通过c#.net核心)连接到RDS是数据库版本!我正在连接到RDS MS SQL 2008 R2,它使用本地代码而不是Lambda。当我将RDS目标数据库更改为MS SQL 2016时,它工作正常!