【问题标题】:Psycopg2 on AWS Lambda not connecting to RDS databaseAWS Lambda 上的 Psycopg2 未连接到 RDS 数据库
【发布时间】: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>

RDS_LAMBDA_SECURITY_GROUP 入站

VPC 路由表路由

所有子网都与路由表相关联

Lambda_Role 权限

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


【解决方案1】:

将 RDS 安全组中的 Lambda 安全组列入白名单,以允许来自 lambda 的入站访问。 (使用 RDS 端口在 RDS 入站规则中添加 Lambda SG 作为源 SG)

除了让 lambda 在同一个 VPC 或具有对等互连的不同 VPC 中运行之外,这是必需的

【讨论】:

  • RDS和Lambda的SG一样,有问题吗?
  • 我已使用新配置更新了有关问题的 RDS_LAMBDA_SECURITY_GROUP 入站部分。仍然在 lambda psycopg2 上关闭连接
  • 如果 RDS 和 Lambda 安全组相同,请将 RDS 端口入站中的相同 SG 列入白名单。这将允许所有使用此 SG 的请求。
  • 安全组现在拥有 5432 (Postgres PORT) 权限,但仍然无法使用 lambda 连接
【解决方案2】:

前一周我遇到了这个问题。 将 lambda 函数和 RDS 放在同一个 VPC 中,具有相同的安全组和子网。 转到 RDS 连接和安全选项卡。

端点是您放入psycopg2 的主机。

这对我有用,我将 sqlalchemypsycopg2 引擎一起使用。

【讨论】:

    【解决方案3】:

    我将lamba更改为nodejs,然后按照与this question完全相同的步骤进行操作,然后我就可以让它工作了。我认为该错误与没有 NAT 的公共子网有关

    【讨论】:

      猜你喜欢
      • 2021-09-05
      • 2019-05-27
      • 2021-03-17
      • 2017-09-07
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2019-02-24
      • 1970-01-01
      相关资源
      最近更新 更多