Как вызвать несколько концентраторов событий в лазурной веб-работе или функции - PullRequest
0 голосов
/ 30 мая 2018

У меня есть несколько концентраторов событий Azure, расположенных в разных регионах Azure.Я хочу написать webjob / функцию, которая может получать сообщения от всех этих концентраторов событий, без необходимости жесткого кода, который EH будет слушать.

Итак, обычно у вас есть что-то подобное, одна функция, которая можетполучать сообщения от одного EH, как определено в config:

public void Func([EventHubTrigger("%eventhubInName%")] string data)

В моем случае у меня есть 6 различных концентраторов EventHub, разбросанных по 6 лазурным регионам.Что-то, что я хочу, чтобы при настройке при запуске моя функция прослушивала несколько концентраторов событий, чтобы мне не нужно было жестко кодировать 6 одинаковых функций (Func1, Func2 ..) или размещать мою веб-работу 6 раз.

Этоможно как-нибудь?Например, что-то делать во время запуска веб-задания?

1 Ответ

0 голосов
/ 30 мая 2018

Одна функция Azure не может быть связана с несколькими триггерами, и, насколько мне известно, WebJob SDK также не может этого сделать.Очевидно, что вы могли бы написать свою собственную веб-работу (не SDK), но я думаю, это не то, о чем вы просите.

Самый простой способ - написать вспомогательный метод:

public void Impl(string data) { ... }

, а затем определите 6 одинаковых функций с различными концентраторами событий:

public void Func1([EventHubTrigger("%hub1%", Connection = "Conn1")] string data) 
    => Impl(data);

public void Func6([EventHubTrigger("%hub6%", Connection = "Conn6")] string data) 
    => Impl(data);

Вы также можете вручную создать 6 function.json файлов в 6 папках, чтобы они указывали на ту же самую функцию Impl, нос другими настройками Event Hub.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...