【发布时间】:2022-01-19 07:22:58
【问题描述】:
当我尝试连接到我的 RDS Postgresql 数据库时,我得到以下输出
{
"errorMessage": "2022-01-07T13:28:35.428Z 975a92cd-936c-4d1c-8c23-6318cd609bff Task timed out after 10.01 seconds"
}
数据库设置为公共访问
Lambda psycopg2 连接代码
connection = psycopg2.connect(user=user,
password=password,
host=host,
port=port,
database=database)
打印(连接)
<connection object at 0x7ff7eb854b90; dsn: 'user=db_user password=db_password dbname=db_name host=rds_host port=5432', closed: 0>
所有子网都与路由表相关联
VPC 日志
很多被拒绝的连接,不确定在这里发布打印是否安全。有时与数据库的连接状态为 ACCEPTED,但还有一些其他状态为 REJECTED 状态
知道为什么我仍然无法连接到我的数据库吗?
【问题讨论】:
-
您是否在 VPC 中运行 Lambda?它是否尝试使用本地 IP 地址或公共 IP 地址连接到数据库?你有 NAT 吗?您的 Lambda 安全组的出口规则是什么?您是否有碍事的 NACL?
-
@Parsifal 是的,我在与数据库相同的 VPC 中运行。我使用 RDS 提供的数据库端点。我没有 NAT,Lambda 安全组的出站规则对于所有端口都是 0.0.0.0/0。我确实有一个允许 0.0.0.0/0 规则编号 100 和拒绝 0.0.0.0/0 *
-
验证您的 Lambda 是否使用私有 IP 访问数据库。
-
@Parsifal 你的意思是数据库的IP吗?我只能访问 RDS 控制台提供的端点,如何查看 de IP?
-
@Parsifal 在网络接口找到私有 IP,现在将其用作主机,但仍然得到相同的结果
标签: python amazon-web-services aws-lambda psycopg2