Могу ли я использовать Google Cloud Pub / Sub в разных проектах Google Cloud? - PullRequest
0 голосов
/ 29 июня 2018

Допустим, у меня есть проекты A, B и C в Google Cloud с несколькими облачными функциями в каждой.

Я хочу настроить Pub / Sub в проекте C, чтобы на функции в A и B можно было подписаться.

Возможно ли это? Нужно ли настраивать какую-либо учетную запись службы с настраиваемыми разрешениями?

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

В проекте подписки на странице IAM добавьте нового участника с ролью «Администратор публикации / подчиненного», новым именем участника будет адрес электронной почты serviceaccount из проекта публикации. Затем создайте облачную функцию в проекте публикации и назначьте эту же служебную учетную запись в нижней части страницы (ниже) для функции.

Вот пример узла для облачной функции:

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" }));
});
};
0 голосов
/ 06 июля 2018

Как вы упомянули в комментарии, вы можете подписаться на тему из других облачных функций, если вы установите push-подписку .

Кому опубликовать в пабе / под-теме из другого проекта вы должны предоставить соответствующие права для его учетной записи службы в целевом проекте.

...