跨不同项目设置发布/订阅订阅?

Pan*_*kaj 5 google-cloud-platform google-cloud-pubsub

在我的 GCP 项目(项目A)中,我创建了一个发布/订阅主题(topicA ),在此发布/订阅主题中发布的消息需要通过订阅(subscriptionB )在其他 GCP 项目(项目B )中使用。

设置subscriptionB的推荐方式是什么?

  1. 在项目 A 中定义subscriptionB,并使用适当的 IAM 权限从项目 B 添加服务账户。
  2. 在项目 B 中定义subscriptionB。在云控制台中,可以通过授予 pubsub.topic.attachSubscription 来附加来自不同主题的订阅(如下所示)。

方法2可能吗?如果是,那么何时使用方法 2 以及方法 2 需要做什么?

在此输入图像描述

gui*_*ere 7

第二种方法是可以的,还有第三种方法。

  1. roles/pubsub.subscriber在项目 B 的服务帐户、项目 A 的订阅(或项目)上使用角色
  2. 您需要roles/pubsub.subscriber在项目 A 上拥有您想要的主题(或项目)的角色。根据消息中的定义,您至少需要pubsub.topics.attachSubscription该主题(或项目)的权限。为此,如果您只想授予此权限而不授予该角色的其他 2 个权限,则可以创建自定义角色roles/pubsub.subscriber
  3. 第三种方案是在方案一的基础上,在项目A中创建订阅,但是是Push订阅,并将消息推送到HTTP端点。这次B项目不需要认证。但是,如果您想要保护您的 HTTP 端点(例如部署在 Cloud Run 或 Cloud Functions 上),您将需要在项目 A 的推送订阅中拥有正确的授权来调用项目 B 中的端点