谷歌云运行服务URL(发现)

3
我正在运行几个gcloud服务,它们自动分配的URL格式如下:

https://SERVICE_NAME-XXXXXXX-ew.a.run.app/

这段文本的翻译如下:
这不是特别容易处理的,也不方便将这些URL传递给客户。另一个选择是使用自定义域名,但这需要在DNS记录中硬编码子域(据我所知),我想避免这样做并使用默认URL。
在处理这些URL时,最佳实践是什么?我可以想象保留一些服务-URL映射并将其传递给客户端,但我想避免重复发明轮子。

2
我的想法是... 我假设URL由SERVICE_NAME和项目ID组成。如果我创建了一个服务,那么我希望这个URL在服务的整个生命周期内保持不变。然后,我会创建一个DNS条目,使用CNAME作为别名。所以,我不会公开:https://billing-kolban-12345-ew.a.run.app而是公开:https://billing.api.mycompany.com我们有一个CNAME映射。为了获得最佳体验,请进一步考虑利用Apigee或CloudEndponts等API管理工具作为您服务的代理。 - Kolban
你的所有服务都在同一个区域吗? - guillaume blaquiere
2个回答

5

编辑:我发布了一个名为 runsd 的外部工具,可让您执行此操作。请查看:https://github.com/ahmetb/runsd


感谢您的提问!Cloud Run 的“按名称进行服务发现”是一个非常活跃的领域。但是,目前还没有可以分享的活动时间表。

您可以在这里查看我在 Cloud Run 上运行此原型:https://twitter.com/ahmetb/status/1233147619834118144

像链接的 Google Cloud 服务目录这样的 API 更适用于自定义/DIY 服务发现,您可能希望将其构建到您的 RPC 堆栈(如 gRPC)中。它更像是一个托管的域名目录,您可以将其与您的 RPC 集成。

如果您有兴趣参加未来的 alpha 版本,请给我发送电子邮件 ahmetb@google.com。


嗨,感谢回答,我很乐意参与!我想使用跨区域发现功能。 - Vojtěch

4

您可以使用beta版的Service Directory服务。

在服务部署时:

  • 使用名称和URL作为元数据创建您的服务。

在您的代码中:

  • 使用服务名称请求服务元数据,并获取URL。
  • 使用该URL。

由于您没有IP/端口,因此无法使用服务的终端功能。

但是,目前有客户端库,您必须直接使用API。


这看起来很有前途!他们说:“服务目录允许客户端通过DNS、HTTP和gRPC解析服务。”- 然而,却找不到如何通过HTTP查询它的方法 - 这正是移动应用程序所需要的。 - Vojtěch
HTTP?你是指没有SSL吗?为什么在移动设备上不可能呢? - guillaume blaquiere
我只是复制了他们写的内容 - 当然我想使用带有SSL的HTTP。但是我没有找到任何通过HTTP从应用程序调用它的方法。 - Vojtěch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接