Cloud Run服务间调用返回connect ETIMEDOUT错误配置问题咨询
缺失配置项及问题说明
- 错误使用服务C的公网URL作为请求地址
你当前SERVICE_C配置的是服务C的公网访问域名,解析结果为公网IP。而你的两个服务都配置了所有流量走VPC路由,Cloud Run实例本身没有公网IP,如果VPC对应的子网没有配置NAT网关,发往公网IP的请求根本无法出网,直接触发ETIMEDOUT超时。同时服务C的ingress仅允许内部流量,就算请求能出网,公网请求也会被Cloud Run拦截,无法到达服务C。
解决方法:将SERVICE_C替换为服务C的私有访问地址,确保请求走Google内网链路。 - VPC Connector所在子网未开启Private Google Access
必须在绑定VPC Connector的子网中开启Private Google Access,才能保证发往Cloud Run官方域名的请求被解析到Google内网IP,不会路由到公网,符合服务C的内部流量准入要求。 - VPC防火墙出站规则配置缺失
检查VPC防火墙的出站规则,确认允许VPC Connector的IP段向443端口发起HTTPS请求,避免内部链路的请求被防火墙拦截。 - 服务与VPC Connector区域不匹配
确认服务B、服务C、VPC Connector三者部署在同一GCP区域,跨区域的内网访问需要额外配置VPC对等连接,否则会出现连通性超时。
补充说明
你已经将两个服务配置为允许未认证访问,代码中的IdToken鉴权逻辑属于冗余配置,直接删除也不会影响请求访问权限。
内容的提问来源于stack exchange,提问作者Bart Kalkman
相关产品推荐
相关产品推荐

