跨项目访问设为内部流量入口的Cloud Run服务问题排查
跨项目Cloud Run前端访问内部Ingress的Cloud Run API问题排查
核心结论
当前方案并非不可行,但存在多个容易遗漏的配置细节导致流量无法正确路由,以下是具体排查点和修复建议:
1. VPC对等连接与路由验证
- 确认两个项目的VPC对等连接状态为已激活(Active),双方均完成对等连接的接受操作。
- 检查前端项目VPC的路由表:是否存在指向dev项目VPC CIDR的路由,下一跳为VPC对等连接。
- 检查dev项目VPC的路由表:是否存在指向前端项目VPC CIDR的路由,下一跳为VPC对等连接。
- 若使用自定义路由,排查是否存在路由冲突或优先级设置错误导致流量被丢弃。
2. Cloud Run API服务的VPC接入配置
- 你将API的ingress设置为「允许内部流量和Cloud负载均衡流量」,但Cloud Run服务默认不在VPC网络内,必须通过Serverless VPC Access连接器接入dev项目的VPC,才能接收来自对等VPC的流量。需确认API服务已关联对应连接器。
- 访问API必须使用内部域名:
[服务名].[区域].run.app,若前端请求的是外部域名,即使流量走VPC,也会被ingress规则拦截。
3. 前端Cloud Run与Next.js路由验证
- 确认前端Cloud Run服务已启用VPC连接器,且
--vpc-egress参数设置为all-traffic(确保所有出站流量经连接器路由)。 - 检查Next.js API路由中请求的API地址是否为dev项目Cloud Run的内部域名,而非外部域名。若使用外部域名,请求会被API的ingress规则直接拒绝。
4. 防火墙规则检查
- dev项目VPC需配置防火墙规则,允许来自前端项目VPC CIDR的流量访问API服务的80/443端口。
- 前端项目VPC需配置防火墙规则,允许出站流量到dev项目VPC CIDR的对应端口。
5. DNS解析验证
- 在前端Cloud Run服务中执行
nslookup [API服务内部域名],确认能解析到正确的内部IP。 - 若解析失败,需在dev项目VPC中配置私有DNS区域,或确保VPC对等连接已启用DNS解析共享。
内容的提问来源于stack exchange,提问作者Lance Armah-Abraham
相关产品推荐
相关产品推荐

