服务查询的 appengine 服务不起作用
appengine service to service queries not working
我关注了那些instructions
我有一个应用引擎,其中部署了 2 个服务(我们称它们为 A
和 B
)。 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,但我不知道如何查看传出流量以确认它是否正常工作。
有两件事需要完成。
- 在 IAP 配置页面中,您需要允许应用本身。因此,在右侧窗格中,单击 "Add",然后添加该应用程序。 (类似于
<app-id>@appspot.gserviceaccount.com
)
- 您需要在请求中添加正确的
"Authorization" : "Bearer <>"
header。您可以按照 Authenticating from a service account 获取 token_response['id_token']
放入 header。是的,代码很多。
请注意,即使我添加了新访问权限,它仍未显示在右窗格中。可能和IAP还在测试阶段有关。
我关注了那些instructions
我有一个应用引擎,其中部署了 2 个服务(我们称它们为 A
和 B
)。 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,但我不知道如何查看传出流量以确认它是否正常工作。
有两件事需要完成。
- 在 IAP 配置页面中,您需要允许应用本身。因此,在右侧窗格中,单击 "Add",然后添加该应用程序。 (类似于
<app-id>@appspot.gserviceaccount.com
) - 您需要在请求中添加正确的
"Authorization" : "Bearer <>"
header。您可以按照 Authenticating from a service account 获取token_response['id_token']
放入 header。是的,代码很多。
请注意,即使我添加了新访问权限,它仍未显示在右窗格中。可能和IAP还在测试阶段有关。