Python AWS lambda 函数连接到 RDS mysql : Timeout error

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

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

最佳答案

For VPC, subnet and security group parameter in lambda function I gave the same values as I have in the RDS db instance.

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

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

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

另见 Why Do We Need Private Subnets in VPC以便更好地了解公共(public)子网与私有(private)子网。

关于Python AWS lambda 函数连接到 RDS mysql : Timeout error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823057/

相关文章:

python - python中不同列中列内的字典的拆分列表

java - 如何在JSP中为mySQL自动生成唯一ID

mysql - 比较表之间的值

amazon-web-services - AWS DynamoDB。我是否过度使用了我的写入容量?

python - 构建具有完整图像支持的 Pygame?

python从文件中提取数据到数据帧

python - Kaggle 泰坦尼克号与 tflearn 神经网络

php - 用于 SQL 注入(inject)性能的最佳函数

java - 如何让本地机器承担IAM角色

amazon-web-services - 使用 aws cli,确定当前区域的最佳方法是什么