执行python lambda函数时,出现“Task timed out after 3.00 seconds”错误。我在尝试同样的例子。
当我尝试从eclipse运行相同的代码时,它运行得很好,我可以看到查询结果。同样地,我可以从本地机器Mysql工作台连接到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地址,而是开始在框中键入sg,然后选择要向其中添加规则的安全组的id,以便该组是自引用的。
请注意,这可能不是正确的长期修复方法,因为如果Lambda函数需要访问Internet或大多数AWS服务,则Lambda函数需要位于NAT设备后面的专用子网上。这并没有描述当前配置RDS实例的子网的配置,因为您提到了添加本地IP以允许访问RDS。这表明您的RDS位于公共子网上。
另请参见Why Do We Need Private Subnets in VPC以更好地了解公共子网和私有子网。

关于python - 连接到RDS mysql的Python AWS Lambda函数:超时错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43823057/

10-11 07:25