我有一个简单的 Spring Boot 服务 'say-hi' 在 /say-hi 下接受 GET 请求并返回 'hello'。它部署在托管 Cloud Run 中。假设我不想向公众开放它。现在我想做两件事:1. 允许开发人员(我自己)访问“say-hi” 2. 允许 Cloud Run 之外的另一个 Spring Boot 服务能够调用“say-hi”
对于我的目标 1:
奇怪的是 curl 命令不起作用,但 Insomnia 工作正常。基本上,我遵循了文档,将我的 google 帐户添加到角色/run.invoker,但 curl 命令显示 Network is unrechable:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" http://say-hi-0-1-0-q6g2cgbzna-ew.a.run.app:8080/say-hi -v
错误:
* Trying 216.239.36.53...
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
* Trying 2001:4860:4802:36::35...
* Immediate connect fail for 2001:4860:4802:36::35: Network is unreachable
但是,如果我gcloud auth print-identity-token
单独运行以先获取令牌,然后从 Insomnia 客户端发送 GET 请求,它可以工作......我想知道为什么......
对于我的目标 2 ,我假设正确的会话在这里查看它。这是否意味着如果我想从受管理的 Cloud Run 外部(从我自己的笔记本电脑和其他 GKE 实例)访问“say-hi”,我需要为我的项目启用 IAP?如果是,如何将云运行与 IAP 集成?