AWS Lambda 上的 Psycopg2 未连接到 RDS 数据库
Psycopg2 on AWS Lambda not connecting to RDS database
当我尝试连接到我的 RDS Postgresql 数据库时,我得到以下输出
{
"errorMessage": "2022-01-07T13:28:35.428Z 975a92cd-936c-4d1c-8c23-6318cd609bff Task timed out after 10.01 seconds"
}
数据库设置为public访问
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>
RDS_LAMBDA_SECURITY_GROUP 入站
VPC 路由 Table 路由
所有子网也都关联到路由 table
Lambda_Role 权限
VPC 日志
很多被拒绝的连接,不确定在这里 post 打印是否安全。有时与数据库的连接状态为 ACCEPTED 但还有一些其他状态为 REJECTED
知道为什么我仍然无法连接到我的数据库吗?
在 RDS 安全组中将 Lambda 安全组列入白名单,以允许来自 lambda 的入站访问。 (使用 RDS 端口在 RDS 入站规则中添加 Lambda SG 作为源 SG)
除了在同一个 VPC 或具有对等互连的不同 VPC 中具有 lambda 运行 之外,这是必需的
前一周我遇到了这个问题。
将 lambda 函数和 RDS 放在同一个 VPC 中,具有相同的安全组和子网。
转到 RDS 连接和安全选项卡。
端点是您放入 psycopg2
的主机。
这对我有用我用 sqlalchemy
和 psycopg2
引擎。
我将 lambda 更改为 node js,然后按照与 完全相同的步骤进行操作,然后我就可以让它工作了。我认为该错误与没有 NAT
的 public 子网有关
当我尝试连接到我的 RDS Postgresql 数据库时,我得到以下输出
{
"errorMessage": "2022-01-07T13:28:35.428Z 975a92cd-936c-4d1c-8c23-6318cd609bff Task timed out after 10.01 seconds"
}
数据库设置为public访问
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>
RDS_LAMBDA_SECURITY_GROUP 入站
VPC 路由 Table 路由
所有子网也都关联到路由 table
Lambda_Role 权限
VPC 日志
很多被拒绝的连接,不确定在这里 post 打印是否安全。有时与数据库的连接状态为 ACCEPTED 但还有一些其他状态为 REJECTED
知道为什么我仍然无法连接到我的数据库吗?
在 RDS 安全组中将 Lambda 安全组列入白名单,以允许来自 lambda 的入站访问。 (使用 RDS 端口在 RDS 入站规则中添加 Lambda SG 作为源 SG)
除了在同一个 VPC 或具有对等互连的不同 VPC 中具有 lambda 运行 之外,这是必需的
前一周我遇到了这个问题。
将 lambda 函数和 RDS 放在同一个 VPC 中,具有相同的安全组和子网。
转到 RDS 连接和安全选项卡。
端点是您放入 psycopg2
的主机。
这对我有用我用 sqlalchemy
和 psycopg2
引擎。
我将 lambda 更改为 node js,然后按照与