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

mar*_*ler 8 google-cloud-platform google-cloud-pubsub google-cloud-functions

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

我想在项目C中设置一个Pub/Sub,这样A和B中的函数就可以订阅.

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

谢谢

Cal*_*ene 9

在IAM页面的订阅项目中,添加一个Pub/Sub Publisher角色的新成员,新成员名称为发布项目的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" }));
});
};
Run Code Online (Sandbox Code Playgroud)


kom*_*ich 5

正如您在评论中提到的,如果您设置推送订阅,则可以从另一个 Cloud Functions订阅该主题。

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