Могу ли я добиться объединения функций Azure с помощью устойчивых функций, расположенных в разных группах ресурсов и планах потребления?

Могу ли я достичь цепочки функций Azure с помощью устойчивых функций, расположенных в разных группах ресурсов и планах потребления? ИЛИ должны ли функции существовать в одной группе ресурсов / плане обслуживания?

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


person Amit Kumar    schedule 08.11.2017    source источник


Ответы (1)


Мы поддерживаем объединение в цепочку устойчивых функций только из одного приложения с одной функцией. Это техническое ограничение, налагаемое текущим дизайном базового поставщика службы хранилища Azure.

Однако вы можете обойти это разными способами в зависимости от ваших потребностей. Например, оркестровка в приложении-функции A может отправить сообщение очереди, которое запускает функцию триггера очереди в приложении-функции B, которая изнутри запускает другую оркестровку или вызывает событие для существующей оркестрации с помощью API управления экземплярами.

Устойчивые оркестровки функций также поддерживают асинхронную модель HTTP, что означает, что оркестровка в приложении-функции A может использовать HTTP для запуска оркестрации в приложении-функции B, а затем опрашивать конечную точку состояния, которую она получает, чтобы получить ответ, когда он будет доступен (дополнительная информация в тему HTTP API).

Но можете ли вы прокомментировать, почему вы хотите поддерживать связь между разными функциональными приложениями? Мы получали этот запрос раньше, и наличие дополнительных данных может помочь нам реализовать решение раньше. :)

person Chris Gillum    schedule 09.11.2017
comment
У нас есть несколько доменов микросервисов с собственными базами данных. Существует несколько рабочих процессов, которые вызываются триггером темы или планировщиком с использованием функций Azure. Этим рабочим процессам часто требуются данные из других доменных служб, обычно от функций Azure в других доменах. Цепочка запросов и ответов через служебную шину Azure выполняется МЕДЛЕННО, поскольку многие методы в SDK служебной шины Azure работают медленно (например, SessionClient.AcceptMessageSessionAsync), к тому же мы должны поддерживать очереди для организации этого рабочего процесса. Альтернативой может быть вызов функций Azure непосредственно в других службах для получения междоменных данных. - person Amit Kumar; 22.11.2017
comment
Для дальнейшего уточнения: SessionClient.AcceptMessageSessionAsync работает медленно в версии .net Standard 1.x - person Amit Kumar; 22.11.2017
comment
Устойчивые функции могут вызывать функции только внутри одного и того же приложения-функции из-за дизайна микросервисов. Каждый микросервис должен иметь дело только с одной обязанностью. Связь между разными доменами должна осуществляться посредством косвенной связи, такой как http или любой другой сервис шины сообщений. - person gog; 27.03.2020