我有一个简单的.Net core 2.1 Web应用程序,已将其部署到AWS lambda。该应用程序与RDS PostGres数据库对话。该Web应用程序能够从我的本地机器连接到RDS PostGres数据库,但是同一应用程序在生产环境中连接到RDS数据库超时。
我想念什么?
ASP.Net 2.1 Lambda配置::lambda具有执行角色,该角色具有对所有RDS资源拥有所有权利的策略。
CloudWatch日志:单击lambda函数=>“监视”选项卡=>在cloudwatch日志中查看日志会显示以下错误:
答案 0 :(得分:2)
因此,似乎您的RDS的安全组仅允许来自1个特定IP(76.187.198.247)的入站连接。
这仅在您的lambda位于与弹性IP关联的子网(不是)中并且弹性IP是RDS安全组的入站地址的情况下才有效。
Lambda未绑定到特定的硬件,并且IP每次都会更改,因此您将阻止与SG的入站连接。
但是,在这种情况下,这种弹性IP是不必要的成本,有一种更好的方法:
1)创建一个将在其中初始化lambda的子网, 2),然后在Lambda设置中选择要启动到VPC(与RDS实例相同)的计算机,然后 3)选择那些子网(如果发生AZ中断,最佳做法是> 2) 4)更改RDS安全组设置,以允许来自子网lambda启动的入站流量进入