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

启用VPC直接出口后,Cloud Run能否通过Unix套接字访问Cloud SQL?

问题解答

核心结论

启用Direct VPC egress后并非必须使用Cloud SQL私有IP,仍可通过Cloud SQL Proxy结合公网IP访问,但需要调整Proxy的连接方式或配置。

错误原因分析

你遇到的bind: invalid argument错误,本质是启用Direct VPC egress后,实例的网络环境被限制为仅通过VPC出口访问,默认的Cloud SQL Proxy Unix套接字模式在这种环境下存在路径权限或路由限制问题:

  • 本地套接字目录/tmp/cloudsql-proxy-tmp/可能存在权限不足,或Direct VPC egress的安全规则限制了本地套接字的创建/使用
  • Proxy默认通过公网连接Cloud SQL公网IP,但Direct VPC egress的子网路由可能未允许该流量(即使你以为Google Private Access已启用,仍需确认具体配置)

可行解决方案

方案1:改用Cloud SQL Proxy的TCP端口模式

放弃Unix套接字,改用TCP端口连接:

  1. 启动Proxy时指定端口:
    ./cloud-sql-proxy project_id:region:db_id --port 5432
    
  2. 修改DATABASE_URL为TCP连接格式:
    postgresql://user:password@localhost:5432/db_name
    

方案2:修复Unix套接字模式的问题

如果坚持用Unix套接字:

  • 手动创建并设置/tmp/cloudsql-proxy-tmp/目录权限:
    mkdir -p /tmp/cloudsql-proxy-tmp/ && chmod 777 /tmp/cloudsql-proxy-tmp/
    
  • 启动Proxy时显式指定套接字路径:
    ./cloud-sql-proxy project_id:region:db_id --unix-socket /tmp/cloudsql-proxy-tmp/
    
  • 确认Direct VPC egress的子网已启用Google Private Access,且路由规则允许实例访问Cloud SQL的公网IP段

方案3:验证VPC网络配置

  • 检查子网的Google Private Access状态,确保已启用
  • 确认VPC出口规则未限制对Cloud SQL公网IP的访问(或配置Private Service Connect端点连接Cloud SQL)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 22:39:58