【发布时间】:2017-11-25 22:03:48
【问题描述】:
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。据我所知,如果我可以建立与数据库的套接字连接 - 这意味着所有关于网络的偏好都可以吗?那么哪里有问题呢?
【问题讨论】:
-
None如何表示连接成功? -
@Michael-sqlbot 因为连接不正确将通过
ConnectionRefusedError
标签: python postgresql amazon-web-services aws-lambda amazon-rds