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

连接到RDS mysql的Python AWS lambda函数:超时错误,python,mysql,amazon-web-services,aws-lambda,rds,Python,Mysql,Amazon Web Services,Aws Lambda,Rds,在执行python lambda函数时,我发现任务在3.00秒错误后超时。我正在尝试同样的例子。 当我尝试从eclipse运行相同的代码时,它工作正常,并且可以看到查询结果。同样,我可以从本地机器Mysql workbench连接到db实例,而不会出现任何问题。 我尝试为这个lambda函数创建一个具有完全管理员访问策略的角色,即使这样,它也不能正常工作。db实例有一个vpc,我刚刚使用edit CIDR选项在那里添加了我的本地ip地址,这样我就可以通过我的本地机器工作台访问该实例。对于lamb

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

对于lambda函数中的VPC、subnet和security group参数,我给出了与RDS db实例中相同的值

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

将MySQL TCP端口3306的规则添加到此安全组,但不要指定IP地址,而是开始在框中键入s g,然后选择要添加规则的安全组的id,以便该组是自引用的

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


另请参阅,以更好地了解公共子网与私有子网。

将主题命名为AWS Lambda会更好吗?这与python Lambda关键字无关。谢谢。成功了。虽然我必须选择All而不是MySQL。我也会阅读你的链接,以正确的方式做它。但有一个问题,我假设安全组就像防火墙一样,有入站和出站ip,如果这种情况是通过自引用发生的,那么我们是否再次提供相同的ups集,或者通过自引用实际发生了什么。当安全组中的入站规则引用安全组的ID而不是ip地址时,这允许连接到该组成员的任何弹性网络接口ENI的流量与规则匹配。它不像include,它不涉及组中的其他规则,它只允许您根据源组ID而不是源IP配置规则,并且当组需要接受来自同一组其他成员的流量时,该规则是自引用的,因此组允许来自其自身成员的流量。弹性网络接口ENI是提供实例内部IP地址的虚拟NIC卡。您还会发现它们连接到Lambda容器、RDS实例、弹性负载平衡器和其他一些东西。请参阅EC2控制台左侧窗格中的网络接口。通常,这些都是由使用它们的系统自动创建和删除的。这个答案为我节省了很多时间,非常感谢!