Динамически создавать Cloud Run или функцию, определяемую атрибутом в pub/sub

Я пытаюсь заставить Cloud Run или Cloud Function запускать и извлекать сообщения, соответствующие определенному идентификатору, например, если сообщение с идентификатором атрибута 1 помещено в тему, Cloud Run с идентификатором 1 удалит его, важно, чтобы все сообщения с атрибутом 1 отправлялись в один и тот же экземпляр.

Я понимаю, что могу использовать фильтры для подписок, но я хотел бы иметь возможность легко изменить количество возможных идентификаторов, например. Если бы я помещал сообщения в тему только с идентификатором от 0 до 4, то было бы запущено только пять экземпляров.

Как бы я начал создавать что-то подобное? Поддерживает ли Pub/Sub такую ​​функциональность?

Я знаю, что могу создать X тем, а затем поместить каждое сообщение в свою собственную тему, но это кажется неэффективным способом выполнения этого, когда есть система атрибутов.

Вы не можете указать в Pub/Sub, на какую конечную точку отправлять сообщение на основе атрибута. Вам может понадобиться услуга между CR и Pub/Sub в качестве «маршрутизатора». it's important that all messages with attribute 1 go to the same instance что вы называете экземпляром Cloud Run? Вы имеете в виду обслуживание? Если вы на самом деле имеете в виду экземпляр, работающий в Cloud Run, вы не можете перенаправлять сообщения в определенные экземпляры.

Puteri 15.11.2022 16:00

Также то, что вы описываете, звучит не так, как вы создаете функции/службы CR на основе сообщений (как вы пишете в заголовке), а обрабатываете их в уже созданных службах. Вы можете это прояснить?

Puteri 15.11.2022 16:03

Ах, возможно, я плохо сформулировал это, я хочу не более одного контейнера для каждого атрибута сообщения. Я полагаю, вы правы, что вместо этого я бы хотел, чтобы Cloud Run опрашивал сабвуфер паба и извлекал из него любые данные, доступные для них. Например, как будет работать SQS AWS. Моя основная проблема заключается в том, чтобы запустить экземпляр облачного запуска, когда есть сообщение с атрибутом, которому еще не назначен работающий контейнер...

Ollie Pugh 15.11.2022 19:01

Вы нашли решение? если да, можете ли вы поделиться решением?

Roopa M 19.12.2022 09:23

@RoopaM вроде как, я нашел другой способ сделать это, который работал в моей ситуации.

Ollie Pugh 21.12.2022 12:50
Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
1
5
98
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Поэтому лучшим подходом было поместить данные в firestore, а затем, когда все данные были готовы для обработки на следующем уровне, я помещал сообщение в подпубликацию, содержащую идентификатор сообщения, этот идентификатор сообщения определял данные. которые будет обрабатывать эта функция.

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

Я не мог найти других подходов к работе, которые давали бы мне желаемый результат.

Другие вопросы по теме