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

如何配置TypeORM让Cloud Run通过Unix套接字连接Cloud SQL PostgreSQL?

Cloud Run + TypeORM 连接 Cloud SQL PostgreSQL(Unix套接字)配置方案

正确TypeORM配置(二选一)

方案1:拆分参数配置(推荐)

避免使用url字段,直接配置数据库参数并在extra中指定套接字路径:

const config = {
  type: 'postgres',
  username: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
  extra: {
    socketPath: process.env.DB_HOST, // 对应值:/cloudsql/PROJECT:REGION:INSTANCE
    idleTimeoutMillis: 60000,
    statement_timeout: 60000,
    connectionTimeoutMillis: 60000,
    keepAlive: true,
    ssl: false
  }
};

方案2:Unix套接字专用连接字符串

若坚持使用url,需按PostgreSQL规范通过查询参数指定套接字路径:

const config = {
  type: 'postgres',
  url: `postgresql://${process.env.DB_USER}:${process.env.DB_PASSWORD}@/${process.env.DB_NAME}?host=${process.env.DB_HOST}`,
  extra: {
    idleTimeoutMillis: 60000,
    statement_timeout: 60000,
    connectionTimeoutMillis: 60000,
    keepAlive: true,
    ssl: false
  }
};

同容器Cloud SQL Auth Proxy启动要求

确保容器启动命令同时启动Auth Proxy与Node服务,例如:

/cloud_sql_proxy -instances=PROJECT:REGION:INSTANCE=/cloudsql/PROJECT:REGION:INSTANCE & node your-app.js

Auth Proxy会自动在/cloudsql目录下创建对应实例的Unix套接字文件。

必查验证项

  • 确认Cloud Run服务配置中--add-cloudsql-instances参数准确指向目标实例
  • 容器内/cloudsql目录需存在且应用进程有读取权限
  • 服务账号已授予Cloud SQL Client角色
  • 无需额外配置VPC连接器(Unix套接字连接不依赖VPC)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 05:36:16