Можем ли мы извлекать сообщения из паба / подтемы в Angular?

#python #angular #google-cloud-platform #google-cloud-pubsub

#python #angular #google-облачная платформа #google-cloud-pubsub

Вопрос:

Я могу отправлять сообщения из серверной части Python (которая находится на экземпляре виртуальной машины) в тему и просматривать сообщения в пабе / подтеме. Но нет кода для извлечения данных из темы с использованием angular. Я хочу извлечь эти данные и показать их в Angular UI. Не могли бы вы, пожалуйста, помочь мне с этим?

Комментарии:

1. В документах для node JS есть раздел: cloud.google.com/pubsub/docs/quickstart-client-libraries

Ответ №1:

В PubSub есть 2 режима подписки, которые подразумевают 2 вида аутентификации:

  • Push-подписка, при которой отправитель (подписка на PubSub) должен пройти проверку подлинности, чтобы отправить сообщение в безопасную конечную точку
  • Извлекать подписку, где клиент должен пройти проверку подлинности, чтобы иметь возможность получать сообщения.

Итак, в вашем случае вам необходимо аутентифицировать ваше приложение Angular в PubSub Pull Subscription, чтобы иметь возможность читать сообщения. У вас есть 2 решения:

  • Либо вы создаете файл ключа учетной записи службы и помещаете его в свой статический код. Очевидно, что это глупая идея, потому что вы публично делитесь секретом, и, следовательно, это похоже на отсутствие безопасности!
  • Или, поскольку предыдущее решение похоже на отсутствие безопасности, вы можете сделать подписку на получение общедоступной. Предоставьте allUsers в качестве подписчика PubSub.

введите описание изображения здесь

Это будет работать, но есть проблема с дизайном: любой сможет подписаться на вашу подписку на получение, а поскольку сообщения не дублируются между подписчиками, вы потенциально потеряете сообщения.

Лучшим решением может быть обслуживание конечной точки в потоковой передаче, например, с помощью Cloud Run, для аутентификации вашего пользователя на конечной точке Cloud Run и для потоковой передачи сообщений из подписки PubSub pull через потоковое подключение Cloud Run.

Таким образом, вы добавляете уровень безопасности, что-то вроде прокси.