Python 我们可以将发布/订阅主题中的消息拉到其他主题吗?

Python 我们可以将发布/订阅主题中的消息拉到其他主题吗?,python,angular,google-cloud-platform,google-cloud-pubsub,Python,Angular,Google Cloud Platform,Google Cloud Pubsub,我能够将来自Python后端(位于VM实例上)的消息推送到主题&查看关于发布/订阅主题的消息。但并没有使用angular从主题中提取数据的代码。我想把数据拉出来并显示给用户界面。您能帮我解决这个问题吗?对于PubSub,有两种订阅模式意味着两种身份验证: 推送订阅,其中发送方(PubSub订阅)需要经过身份验证才能将消息推送到安全端点 Pull Subscription,其中客户端需要经过身份验证才能获取消息 因此,在您的情况下,您需要在PubSub Pull订阅上验证您的Angular应用

我能够将来自Python后端(位于VM实例上)的消息推送到主题&查看关于发布/订阅主题的消息。但并没有使用angular从主题中提取数据的代码。我想把数据拉出来并显示给用户界面。您能帮我解决这个问题吗?

对于PubSub,有两种订阅模式意味着两种身份验证:

  • 推送订阅,其中发送方(PubSub订阅)需要经过身份验证才能将消息推送到安全端点
  • Pull Subscription,其中客户端需要经过身份验证才能获取消息
因此,在您的情况下,您需要在PubSub Pull订阅上验证您的Angular应用程序,以便能够读取消息。您有两种解决方案:

  • 要么生成一个服务帐户密钥文件并将其放入静态代码中。这显然是一个愚蠢的想法,因为你公开了一个秘密,因此就好像没有安全措施一样
  • 或者,因为前面的解决方案类似于没有安全性,所以可以公开请求订阅。授予诱惑者作为PubSub订户

它会起作用,但存在一个设计问题:任何人都可以订阅您的请求订阅,而且由于订阅服务器之间的消息不重复,因此您可能会丢失消息

更好的解决方案可能是在流式处理中为端点提供服务,例如,使用Cloud Run,在Cloud Run端点上验证您的用户,并通过Cloud Run streaming connexion流式处理来自PubSub pull订阅的消息


这样,您可以添加一个安全层,类似于代理。

node JS的文档中有一个部分: