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

无法从CloudRun连接私有IP的CloudSQL PostgreSQL数据库求助

CloudRun连接CloudSQL私有IP失败排查方案

问题定位

你遇到的org.postgresql.util.PSQLException: Connection to google:5432 refused错误,核心原因是CloudRun实例无法通过私有网络路径访问CloudSQL私有IP,结合共享VPC场景,需从以下几个关键配置环节逐一排查:

排查与修复步骤

1. 修正连接字符串配置

  • 私有IP场景下不能使用google:5432(这是Cloud SQL Auth Proxy的专用地址),必须替换为CloudSQL实例的私有IP地址或其私有DNS名称(格式如INSTANCE_NAME.REGION.PROJECT_ID.internal)。
  • 正确的JDBC连接字符串示例:
    jdbc:postgresql://10.128.0.5:5432/mydb?user=postgres&password=mypassword
    
    其中10.128.0.5是CloudSQL实例在共享VPC中的私有IP。

2. 验证VPC连接器配置

  • 确认VPC连接器绑定的是共享VPC网络,且连接器状态为RUNNING。
  • 检查连接器的IP地址范围,确保与CloudSQL实例所在子网无重叠,且该范围已被授权访问CloudSQL。
  • 确认CloudRun服务已启用VPC连接器,且选择了正确的共享VPC子网。

3. 检查共享VPC权限

  • 共享VPC主机项目需为CloudRun所在的服务项目授予roles/compute.networkUser角色,允许其使用共享VPC资源。
  • 确保CloudRun默认服务账号([项目编号]-compute@developer.gserviceaccount.com)在共享VPC主机项目中拥有compute.subnetworks.use权限,可访问CloudSQL所在子网。

4. 确认CloudSQL私有网络配置

  • 验证CloudSQL实例的私有IP已绑定到共享VPC的正确子网,且该子网与VPC连接器所在子网属于同一VPC。
  • 在CloudSQL控制台的「连接」页面,将VPC连接器的CIDR范围添加到私有网络授权列表,确保实例允许该范围内的流量访问5432端口。
  • 检查共享VPC的防火墙规则,需添加一条允许VPC连接器CIDR访问CloudSQL实例子网5432端口的规则(协议TCP,目标为CloudSQL子网,源为连接器CIDR)。

5. 验证网络连通性

  • 在CloudRun镜像中添加nc工具,运行nc -zv [CloudSQL私有IP] 5432测试端口连通性,确认是否能建立TCP连接。
  • 查看CloudRun和VPC连接器的日志,排查是否有防火墙拦截或流量转发失败的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 14:17:38