无法从 AWS Lambda 连接到 RDS Postgres,但可以建立套接字连接

Can not connect from AWS Lambda to RDS Postgres but can establish socket connection

RDS不能上网,和Lambda一样的VPC。我可以从同一 VPC 中的 EC2 连接到 RDS。我尝试建立从 Lambda 到 RDS 的套接字连接成功:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print(s.connect(('xxx.cmebgbnbfkax.eu-west-1.rds.amazonaws.com', 5432)))

在日志中我看到 None 所以连接成功,但是我通过 psycopg2 连接超时:

psycopg2.connect(
    host='xxx.cmebgbnbfkax.eu-west-1.rds.amazonaws.com',
    dbname=<my db name>,
    user=<my usernamr>,
    password=<my password>)

我在 Lambda 上设置了最大超时 - 60 秒。安全组允许访问端口 5432。据我了解,如果我可以建立到数据库的套接字连接——这意味着所有关于网络的偏好都可以吗?那么哪里会出问题呢?

我的解决方案:我迁移到 DynamoDB - 现在我不需要在部署存档中使用静态链接库编译 psycopg2