Сетка событий Azure - это модель Pub / Sub для передачи (распределения) событий подписчикам на основе их подписки, такой как метаданные логического подключения. Другими словами, в этой модели Pub / Sub нет слушателя.
В вашем сценарии событие из управляемого событиями хранилища больших двоичных объектов отправляется в службу ретрансляции Azure с гибридными подключениями. Обратите внимание, что гибридные подключения используют веб-сокеты на порту 443 с SSL (https). Подробнее о протоколе гибридных подключений Azure Relay можно найти здесь .
Исходя из этого протокола, ваши получатели в тех же гибридных соединениях ретрансляции Azure будут сбалансированы , другими словами, гибридные соединения ретрансляции Azure не поддерживают порт UDP.
Решение для вашего сценария (широковещательная рассылка сообщений о событиях) заключается в использовании функции EventGridTrigger с выходной привязкой SignalR Service в качестве подписчика для хранилища управляемых событиями BLOB-объектов.
Обновление:
В следующем фрагменте экрана показана трансляция события из хранилища больших двоичных объектов на серверы веб-фермы на основе службы AEG и SignalR, интегрированной с функцией EventGridTrigger:
Использование расширения SignalRService для функции очень просто, см. Следующий пример:
#r "Microsoft.Azure.WebJobs.Extensions.SignalRService"
using Microsoft.Azure.WebJobs.Extensions.SignalRService;
public static async Task Run(string eventGridEvent, IAsyncCollector<SignalRMessage> signalRMessages, ILogger log)
{
log.LogInformation(eventGridEvent);
await signalRMessages.AddAsync(
new SignalRMessage
{
Target = "Broadcasting",
Arguments = new[] {eventGridEvent }
});
}
и function.json:
{
"bindings": [
{
"type": "eventGridTrigger",
"name": "eventGridEvent",
"direction": "in"
},
{
"type": "signalR",
"name": "signalRMessages",
"hubName": "mySignalRHubName",
"connectionStringSetting": "AzureSignalRConnectionString",
"direction": "out"
}
],
"disabled": false
}