簡體   English   中英

AWS Lambda 上的 Psycopg2 未連接到 RDS 數據庫

[英]Psycopg2 on AWS Lambda not connecting to RDS database

當我嘗試連接到我的 RDS Postgresql DB 時,我得到以下 output

{
   "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 狀態

關於為什么我仍然無法連接到我的數據庫的任何想法?

將 RDS 安全組中的 Lambda 安全組列入白名單,以允許來自 lambda 的入站訪問。 (使用 RDS 端口在 RDS 入站規則中添加 Lambda SG 作為源 SG)

除了讓 lambda 在同一 VPC 或具有對等互連的不同 VPC 中運行之外,這是必需的

前一周我遇到了這個問題。 將 lambda function 和 RDS 放在同一個 VPC 中,具有相同的安全組和子網。 Go 到 RDS 連接和安全選項卡。顯示引用的端點地址的圖像

端點是您放入psycopg2的主機。

這對我有用,我將sqlalchemypsycopg2引擎一起使用。

我將lamba更改為nodejs,然后按照與這個問題完全相同的步驟進行操作,然后我就可以讓它工作了。 我認為該錯誤與沒有 NAT 的公共子網有關

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM