繁体   English   中英

我可以在不同的Google Cloud项目中使用Google Cloud Pub / Sub吗?

[英]Can I use Google Cloud Pub/Sub across different Google Cloud projects?

假设我在Google Cloud中拥有项目A,B和C,每个项目中都有多个云功能。

我想在项目C中设置发布/订阅,以便A和B中的功能可以订阅。

这可能吗? 我是否需要设置某种具有自定义权限的服务帐户?

谢谢

在IAM页面上的订阅项目中,添加具有发布/订阅发布者角色的新成员,新成员名称是发布项目的serviceaccount-email。 然后在发布项目中创建一个云功能,并在页面底部(在更多下方)为该功能分配相同的服务帐户。

这是云功能的节点示例:

const PubSub = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const topic = pubsub.topic('projects/subscribing-project-name/topics/topic-to- 
publish-to');
const publisher = topic.publisher();

exports.helloWorld = (req, res) => {
const customAttributes = {
message: 'Hello'
};
publisher.publish(Buffer.from("Hello from another project"), customAttributes, 
(err) => {
if (err) {
  res.status(500).send(JSON.stringify({ success: false, error: err.message }));
  return;
}
res.status(200).send(JSON.stringify({ success: true, message: "Message sent to 
pubsub topic" }));
});
};

如评论中所述,如果您设置了push subscription,则可以从另一个Cloud Functions 订阅该主题。

要从另一个项目发布发布 / 订阅主题,您应该为其在目标项目中的服务帐户授予正确的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM