首页 > 解决方案 > 内部服务之间的 Google Cloud Run 通信

问题描述

我有 2 个云运行服务:

这个想法是calculator-api公开的,它将向add-api. add-api出于某种原因,当入口是403 时,我会得到一个 403,internal但是如果我将入口更改为Allow all traffic,它会完美运行。

我使用以下代码正确获取 IdToken ,然后将令牌注入标头中Authorization: Bearer IdToken。我的接收者具有角色add-api权限。calculator-apiCloud Run Invoker

GET request "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/identity?audience=https://add-api.a.run.app"

Header: {"Metadata-Flavor", "Google"}

所以,我认为问题不在于身份验证,而是当入口设置为internal.

标签: google-cloud-platformgoogle-cloud-run

解决方案


您需要在与您的calculator-api 服务相同的区域中创建一个无服务器VPC 连接器并将其添加到您的calculator-api 服务并将出口值设置为all

目前的限制是:2 个服务必须在同一个项目中(或者您需要执行 VPC 对等来实现此目的)


推荐阅读