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

调用GCP Cloud Run服务时遇getaddrinfo ENOTFOUND 500错误求配置方案

Cloud Run服务间调用出现getaddrinfo ENOTFOUND 500错误的解决方案

问题场景

当前集成流程:
angular app -> GCP apigw-1.com/api1 -> GCP Cloud Run micro-1.com/api1 -> GCP Cloud Run apigw-2.com/api2

以下调用均正常:

  • angular app 经apigw-1.com/api1可正常访问micro-1.com/api1
  • Postman直接调用apigw-2.com/api2无异常

但micro-1.com/api1调用apigw-2.com/api2时,触发getaddrinfo ENOTFOUND 500内部服务器错误,需通过GCP端配置解决该问题。

核心原因

该错误本质是DNS解析失败,或服务间调用的权限/网络配置缺失,导致micro-1无法定位或访问apigw-2服务。

具体配置步骤

1. 确认调用域名正确性

Cloud Run服务的有效调用域名需符合以下格式:

  • 完全限定域名(FQDN):[服务名]-[随机哈希]-[地区].a.run.app(可在Cloud Run服务详情页获取)
  • 同项目内部简化域名:[服务名].run.app(仅当服务配置了内部访问权限时可用)
    若使用自定义域名apigw-2.com,需确保该域名已在GCP DNS中正确映射到Cloud Run服务,且调用方网络可解析该域名。

2. 配置服务访问权限

被调用方(apigw-2)

  1. 进入GCP控制台Cloud Run页面,打开apigw-2服务的配置编辑界面
  2. 在「连接性」模块,选择:
    • 若仅允许内部服务调用:「允许内部流量和云负载平衡流量」
    • 若需同时支持外部+内部调用:「允许所有流量」
  3. 保存配置

调用方(micro-1)

确保micro-1的服务账号(默认格式:[项目编号]-compute@developer.gserviceaccount.com)在apigw-2所在项目中拥有roles/run.invoker权限:

  1. 进入apigw-2服务的「权限」页面
  2. 点击「添加权限」,输入micro-1的服务账号邮箱
  3. 选择「Cloud Run Invoker」角色,完成授权

3. VPC网络配置检查(若使用VPC连接器)

如果micro-1配置了VPC连接器访问内部资源,需确保:

  • VPC连接器的子网与apigw-2所在网络互通
  • 连接器已启用DNS解析功能,可解析Cloud Run服务域名
  • 跨项目场景下,已配置VPC peering及相应的DNS转发规则

4. 验证调用

配置完成后,在micro-1服务中使用正确的域名发起调用,测试是否恢复正常。

内容的提问来源于stack exchange,提问作者Ramesh Mohan Reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 07:19:50