从Lambda函数访问RDS

时间:2017-08-18 00:35:24

标签: amazon-web-services lambda amazon-rds

我在RDS中有一个Aurora集群和一个Lambda函数。

  • 两者都分配了相同的VPC。
  • 两者都有相同的子网(us-east-1 a-f)
  • 两者都分配了相同的安全组
  • Lambda与AmazonRDSFullAccess,AmazonVPCFullAccess分配角色, AWSLambdaVPCAccessExecutionRole

当我运行lambda实例时,尝试连接到Aurora时会出现连接超时。我能够在本地访问Aurora(将访问密钥添加到aws configure中)。

还有什么想法我可以检查为什么lambda无法访问该实例?谢谢

更新:每个子网都有以下配置: https://github.com/ampproject/amphtml/issues/6415 enter image description here

2 个答案:

答案 0 :(得分:12)

  

两者都分配了相同的安全组

这是一种常见的误解,即同一安全组的成员可以通过成为同一组的成员来相互通信。不是这种情况。成为同一组的成员只意味着他们遵循相同的规则。

如果该组允许访问自身,则安全组的成员只能访问该组的其他成员。

  

与安全组关联的实例无法相互通信,除非您添加允许它的规则(例外:默认安全组默认具有这些规则)。

     

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html

为此组添加规则以获取“MySQL / Aurora”流量,但不输入IP地址,而是输入安全组的sg-xxxxxxxx标识符。

答案 1 :(得分:0)

我遇到了类似的问题,直到我意识到我使用的VPC没有为VPC内的主机启用dns解析。

需要为VPC设置enableDnsSupport选项。

请参阅http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-dns.html