Serverless connect to (Prisma) Postgres RDS



我正在尝试从无服务器功能连接到RDS。

安装程序在我的本地运行,在我的机器上运行数据库,并在我的本地执行无服务器功能。问题是当我将无服务器功能部署到AWS时,该功能无法连接到数据库。日志显示以下错误

2022-07-08T15:17:05.181Z  a9d9a81b-dec6-43f8-83db-a3a36cf433d1  ERROR PrismaClientInitializationError: 
Invalid `s.manufacturers.findMany()` invocation in
/var/task/src/manufacturers/get/index.js:1:211
→ 1 (()=>
Can't reach database server at `xxxx.yyyy.us-east-1.rds.amazonaws.com`:`5432`
Please make sure your database server is running at `xxxx.yyyy.us-east-1.rds.amazonaws.com`:`5432`.
at RequestHandler.request (/var/task/node_modules/@prisma/client/runtime/index.js:49028:15)
at async PrismaClient._request (/var/task/node_modules/@prisma/client/runtime/index.js:49919:18)
at async r.getManufacturersPrisma (/var/task/src/manufacturers/get/index.js:1:189)
at async e.handler (/var/task/src/manufacturers/get/index.js:1:581) {
clientVersion: '3.15.2',
errorCode: undefined
}

我有一个VPC,有4个子网,2个公共子网和2个私有子网。数据库位于其中一个私有子网上。我可以通过在公共网络上运行的EC2,通过ssh从本地连接到数据库。

数据库和lambda在同一个VPC中,并且Serverless功能运行在RDS列出的其中一个子网上。我不确定我在这个设置中错过了哪一步,或者我该如何调试它。

以防对别人有帮助

我需要编辑rds安全组的入站规则,并允许lambdas CIDR块访问数据库

最新更新