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

问题描述:

RDS无法访问互联网,与Lambda具有相同的VPC。我可以在同一VPC中从EC2连接到RDS。我试图建立从LAMBDA到RDS 成功套接字连接:无法从AWS Lambda连接到RDS Postgres,但可以建立套接字连接

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.据我了解,如果我可以建立到数据库的套接字连接 - 这意味着所有关于网络的偏好是好的?那么哪里可以成为一个问题?

+0

“无”表示连接是否成功? –

+0

@ Michael-sqlbot因为错误的连接将通过'ConnectionRefusedError' –

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