连接到RDS mysql的Python AWS lambda函数:超时错误

时间:2017-05-06 16:54:51

标签: python mysql amazon-web-services aws-lambda rds

当执行python lambda函数时,我得到“任务在3.00秒后超时”错误。我正在尝试相同的例子function。 当我尝试从eclipse运行相同的代码时它工作正常,我可以看到查询结果。同样地,我可以从本地机器Mysql工作台连接到db实例,没有任何问题 我尝试使用完全管理员访问策略为此lambda函数创建一个角色,即使这样它也不能正常工作。 db实例有一个vpc,我只是使用edit CIDR选项在那里添加了我的本地ip地址,所以我可以通过我的本地机器工作台访问该实例。对于lambda函数中的VPC,子网和安全组参数,我给出的值与我在RDS db实例中的值相同。 我还增加了lambda函数的超时,但我仍然看到超时错误  任何意见都将不胜感激。

1 个答案:

答案 0 :(得分:2)

  

对于VPC,lambda函数中的子网和安全组参数,我给出了与RDS数据库实例中相同的值。

安全组不会自动信任自己的成员来访问其他成员。

为此安全组添加规​​则,以便" MySQL" (TCP端口3306)但是不是指定IP地址,而是开始在框中键入s g并选择要添加规则的安全组的ID,以便该组是自引用。

请注意,这可能不是正确的长期修复,因为如果您的Lambda函数需要访问Internet或大多数AWS服务,则Lambda函数需要位于NAT设备后面的私有子网上。这并未描述当前配置RDS实例的子网的配置,因为您提到添加本地IP以允许访问RDS。这表明您的RDS位于公有子网上。

另请参阅Why Do We Need Private Subnets in VPC以更好地了解公共子网和私有子网。