Cloud Run使用VPC connector同时访问内外部服务的问题咨询
可行解决方案
方案1:全流量走VPC连接器 + 配置Cloud NAT
- 选择VPC连接器的路由规则为将所有流量路由到连接器
- 在当前VPC下配置Cloud NAT网关,关联VPC连接器所在的子网,可选择自动分配公网IP或使用自定义公网地址池
- 优势:无需额外调整DNS配置,内部Cloud Run域名、外部公网URL均可正常访问,同时所有出流量可通过NAT的固定公网IP做外部服务的白名单配置
- 注意事项:需要承担Cloud NAT的额外使用成本,适合对公网访问IP有固定要求的场景
方案2:仅私有IP路由到VPC连接器 + 配置私有DNS解析内部Cloud Run域名
- 选择VPC连接器的路由规则为仅将发往私有IP的流量路由到连接器
- 在Cloud DNS中创建私有区域,匹配域名后缀
*.run.app,将该区域的DNS请求转发到Google Cloud全局内部DNS地址169.254.169.254,并绑定到VPC连接器所在的VPC - 配置完成后,内部Cloud Run的
*.run.app域名会被解析到VPC内部可达的私有地址,可正常访问,公网URL走默认公网路由不受影响 - 优势:无需配置Cloud NAT,成本更低,公网访问走Cloud Run默认的高速公网链路,延迟更低
- 注意事项:如果你的内部服务使用了自定义域名,需要将对应的域名后缀也添加到私有DNS转发规则中
常见避坑提示:
- 内部Cloud Run服务需要确保「入站流量」配置为「允许内部流量和来自Cloud Load Balancing的流量」,否则即使VPC链路可达也会被服务端拦截
- 方案2中不管Cloud Run服务部署在哪个区域,都不需要调整内部DNS地址,
169.254.169.254为全局通用地址- VPC连接器需要和你的Cloud Run服务部署在同一区域,避免跨区域访问延迟
内容的提问来源于stack exchange,提问作者user5895938
相关产品推荐
相关产品推荐

