You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Cloud Function中通过Prisma连接CloudSQL Postgres失败求助

Cloud Function 中 Prisma 连接强制SSL的CloudSQL Postgres数据库失败

我在Cloud Function中通过Prisma连接带公网IP且强制开启SSL的CloudSQL Postgres数据库,本地用Cloud Auth Proxy能正常连接,但部署到云端后出现连接错误。

已尝试的两种配置方案

方案1

datasource db {
  provider = "postgresql"
  url = "postgresql://USER:PASSWORD@localhost:3307/DATABASE_NAME?host=CONNECTION_URL"
}

报错信息:

Can't reach database server at `CONNECTION_URL`:`3307`

方案2

datasource db {
      provider = "postgresql"
      url = "postgresql://USER:PASSWORD@localhost/DATABASE_NAME?host=CONNECTION_URL"
    }

报错信息:

Can't reach database server at `IP_ADDRESS`:`5432`

注:IP_ADDRESS为控制台显示的数据库正确公网IP,CONNECTION_URL格式为/cloudsql/PROJ:REGION:INSTANCE

解决方法

1. 云端内置Auth Proxy连接(推荐)

Cloud Function部署后可直接通过Unix套接字连接CloudSQL,无需手动启动Auth Proxy,正确的Prisma配置如下:

datasource db {
  provider = "postgresql"
  url = "postgresql://USER:PASSWORD@localhost/DATABASE_NAME?host=/cloudsql/PROJ:REGION:INSTANCE&sslmode=require"
}
  • host直接填写CloudSQL实例的连接路径/cloudsql/PROJ:REGION:INSTANCE
  • 追加sslmode=require适配数据库强制SSL的要求

2. 必要权限与配置检查

  • 确保Cloud Function的服务账号已分配Cloud SQL Client角色
  • 确认CloudSQL实例已启用私有IP连接(云端套接字连接依赖此配置)
  • 若使用VPC连接,检查CloudSQL防火墙规则是否允许Cloud Function所在VPC的流量

3. 公网IP直接连接(备选)

若需通过公网IP直接连接,需配置完整的SSL参数,Prisma URL格式如下:

datasource db {
  provider = "postgresql"
  url = "postgresql://USER:PASSWORD@IP_ADDRESS:5432/DATABASE_NAME?sslmode=verify-full&sslrootcert=server-ca.pem&sslcert=client-cert.pem&sslkey=client-key.pem"
}
  • 将CloudSQL控制台下载的SSL证书文件(server-ca.pem、client-cert.pem、client-key.pem)放入Cloud Function部署包中
  • 确保证书文件的路径配置正确,或通过环境变量指定路径

内容的提问来源于stack exchange,提问作者joana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:05:25