如何从谷歌云平台服务调用桌面应用程序



我正在构建一个桌面客户端应用程序(win/linux/mac(,其后端托管在GCP中(我也在考虑其他云平台(。桌面应用程序应该是极简主义的,并提供对后端本地机器资源的访问。我正在寻找一种从服务器调用我的应用程序的方法(当某个事件发生时(,然后该应用程序将在本地机器上执行一些工作。以下是我迄今为止所做的尝试。

  1. 谷歌云Pub/Sub。看起来它满足了我的需求,但为了让它发挥作用,我必须创建一个服务帐户,生成JSON密钥并将其存储在本地,这是不好的。当然,我可以限制服务帐户访问权限,但对我来说仍然不太好。也许还有其他方法可以在最终用户机器上验证我的应用程序?我想让我的桌面应用程序最小化(理想情况下没有UI,只有一个"代理"控制台进程/Windows服务(。如果这能解决问题,也许我可以考虑使用登录屏幕将应用程序与后端连接起来,但我不想过于复杂。

  2. Google Cloud Run+SignalR/WebSockets。这个解决方案看起来也不错,但它有一个显著的缺点。只要至少有一个打开的WebSocket,云运行实例就会被认为是活动的,因此会被计费。还有其他与可伸缩性和容器实例同步相关的困难。

您对上述选项有何看法,还有哪些其他可能性?我只剩下REST API和轮询更新了吗?我对云技术还很陌生,所以我们非常感谢您的帮助。谢谢

如果你想从谷歌云调用你的本地应用程序,你需要两件事

  • 第一个,在谷歌云上注册你的应用程序,最好使用auth-mecism(例如,可以是API密钥(。像这样,GCP后端知道在哪里调用应用程序(哪个IP/端口(以及如何调用(身份验证机制(
  • 第二个是让你的应用程序启动并运行,并倾听外部沟通。HTTP是最简单的方法。等待注册期间定义的IP/端口上的HTTP调用,检查身份验证并执行该过程

例如,您可以将数据(位置和身份验证(存储在firestore中,并使用Cloud Run执行HTTP调用。


您还可以反转解决方案,并在本地应用程序运行时轮询(长轮询或定期轮询(后端。

2种方法是可能的,第二种方法稍微容易一些,但管理安全性可能很有挑战性。

最新更新