我具有用于API的AWS Lambda函数。我在API内有一个测试函数,该函数返回“成功”字符串,因此我知道可以从我的机器(邮递员)中访问该API。
Lambda API在我的VPC中。我有公共和私有子网。该API位于公共子网中。我也有一个RDS数据库,该数据库位于专用子网中。我可以通过堡垒主机连接到数据库,因此我知道数据库已连接并且正在运行。
[当我尝试连接到数据库的API调用时,我可以在CloudWatch中看到一条错误消息:
[Error] Amazon.Lambda.AspNetCoreServer.APIGatewayProxyFunction: Unknown error responding to request: MySqlException:
MySql.Data.MySqlClient.MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts. ---> System.InvalidOperationException: Sequence contains more than one matching element
[该错误消息有很多引用,它们讨论了Linq SingleOrDefault()方法,但我对该方法没有任何引用。
我认为该错误与安全组有关。我有一个RDS安全组,该RDS安全组在来自内部VPC ip地址的3306端口上具有入站规则。
我的Lambda函数的安全组应该可以,因为我可以成功命中测试路径。
任何人还有其他想法或地方吗?