服务查询的 appengine 服务不起作用

appengine service to service queries not working

我关注了那些instructions

我有一个应用引擎,其中部署了 2 个服务(我们称它们为 AB)。 Appengine 配置了 IAP。 (身份识别代理)

我无法让 B 查询 A。如果我简单地使用 urlfetch.fetch 调用它,调用将使用 302 重定向到似乎是登录页面的地方。该呼叫未登录 A,因此似乎在其他地方被截获。

据我了解,这应该可行...

无论如何,我尝试使用 Authorization header 就像我们想要查询 google API 时需要做的那样。仍然没有运气,然后我得到 401{'www-authenticate': 'Bearer error="invalid id token"'}

我该怎么办?我必须使用钥匙吗?在某处激活 API 开关以允许 inter-services 通信?

此外,他们提到 X-Appengine-Inbound-Appid 需要在那里。我怎么知道它是否被自动添加?正如文档所述,我将 follow_redirects 设置为 false,但我不知道如何查看传出流量以确认它是否正常工作。

有两件事需要完成。

  1. 在 IAP 配置页面中,您需要允许应用本身。因此,在右侧窗格中,单击 "Add",然后添加该应用程序。 (类似于 <app-id>@appspot.gserviceaccount.com
  2. 您需要在请求中添加正确的 "Authorization" : "Bearer <>" header。您可以按照 Authenticating from a service account 获取 token_response['id_token'] 放入 header。是的,代码很多。

请注意,即使我添加了新访问权限,它仍未显示在右窗格中。可能和IAP还在测试阶段有关。