Руководство по маршрутизации пользовательских событий в гибридные подключения Azure Relay с помощью Azure CLI и Сетки событий
Гибридные подключения Azure Relay — один из поддерживаемых обработчиков событий. Гибридные подключения используются как обработчик событий, когда требуется обработать события из приложения, для которого не предусмотрена общедоступная конечная точка. Эти приложения могут находиться в корпоративной сети организации. В этой статье описано, как с помощью Azure CLI создать пользовательский раздел, подписаться на него и активировать событие для просмотра результата. События отправляются по гибридному подключению.
Примечание.
Если вы не знакомы с Сетка событий Azure, ознакомьтесь с разделом "Что Сетка событий Azure, чтобы получить обзор службы перед выполнением этого руководства".
Необходимые компоненты
- В этой статье предполагается, что у вас уже есть гибридное подключение и приложение-прослушиватель. Чтобы приступить к работе с гибридными подключениями, см. статью Приступая к работе с гибридными подключениями к ретранслятору (.NET) или Приступая к работе с гибридными подключениями к ретранслятору (Node).
Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
- Для работы с этой статьей требуется Azure CLI версии 2.0.56 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание или изменение группы ресурсов
Темами событий сетки являются ресурсы Azure, которые необходимо поместить в группу ресурсов Azure. Группа ресурсов Azure — это логическая коллекция, в которой выполняется развертывание и администрирование ресурсов Azure.
Создайте группу ресурсов с помощью команды az group create.
В следующем примере создается группа ресурсов с именем gridResourceGroup в расположении westus2.
az group create --name gridResourceGroup --location westus2
Создание пользовательской темы
Раздел сетки событий содержит определяемую пользователем конечную точку, в которой можно размещать свои события. В приведенном ниже примере создается пользовательский раздел в вашей группе ресурсов. Замените <topic_name>
уникальным именем для вашего пользовательского раздела. Имя раздела сетки событий должно быть уникальным, так как оно представлено записью системы доменных имен (DNS).
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Создание подписки на события пользовательского раздела
Вы подписываетесь на раздел "Сетка событий", чтобы сообщить сетке событий, какие события нужно отслеживать. В следующем примере подписывается на созданный пользовательский раздел и передается идентификатор ресурса гибридного подключения для конечной точки. Идентификатор гибридного подключения представляется в таком формате:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>
Следующий скрипт получает идентификатор ресурса пространства имен ретранслятора. Он создает идентификатор гибридного подключения и подписывается на раздел сетки событий. В нем также задается тип hybridconnection
для конечной точки и используется идентификатор гибридного подключения для нее.
relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>
relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type hybridconnection \
--endpoint $hybridid \
--expiration-date "<yyyy-mm-dd>"
Обратите внимание, что задана дата окончания срока действия подписки.
Создание приложения для обработки событий
Вам нужно приложение, которое может получать события из гибридного подключения. Эту операцию выполняет пример потребителя гибридного подключения сетки событий Microsoft Azure для C#. Вы уже выполнили необходимые действия.
Убедитесь в том, что установлена версия Visual Studio 2019 или более поздняя.
Клонируйте репозиторий на локальный компьютер.
Загрузите проект HybridConnectionConsumer в Visual Studio.
Откройте файл Program.cs, замените
<relayConnectionString>
и<hybridConnectionName>
на строку релейного соединения и имя созданного гибридного подключения.Скомпилируйте и запустите приложение в Visual Studio.
Внимание
Мы используем строка подключения для проверки подлинности в пространстве имен Azure Relay, чтобы упростить руководство. Мы рекомендуем использовать проверку подлинности идентификатора Microsoft Entra в рабочих средах. При использовании приложения можно включить управляемое удостоверение для приложения и назначить удостоверение соответствующей роли (владелец Ретранслятора Azure, прослушиватель Ретранслятора Azure или отправитель Ретранслятора Azure) в пространстве имен Ретранслятора. Дополнительные сведения см. в статье Аутентификация управляемого удостоверения с помощью идентификатора Microsoft Entra для доступа к ресурсам Azure Relay.
Отправка события в тему
Давайте активируем событие, чтобы увидеть, как сообщение отправляется в конечную точку при помощи службы "Сетка событий". В этой статье показано, как запустить событие с помощью Azure CLI. Кроме того, можно использовать приложение издателя "Сетка событий".
Сначала получите URL-адрес и ключ для пользовательского раздела. Снова используйте имя пользовательского раздела для <topic_name>
.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
Для простоты используйте пример данных события для отправки в пользовательский раздел. Как правило, приложение или служба Azure отправит данные события. CURL — это служебная программа, которая отправляет HTTP-запросы. В этой статье мы используем CURL для отправки события в пользовательский раздел.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Приложение-прослушиватель должно получить сообщение о событии.
Очистка ресурсов
Если вы планируете продолжить работу с этим событием, не удаляйте ресурсы, созданные при работе с этой статьей. В противном случае удалите соответствующие ресурсы с помощью следующей команды.
az group delete --name gridResourceGroup
Следующие шаги
Теперь, когда вы знаете, как создавать темы и подписки на события, ознакомьтесь с дополнительными сведениями о сетке событий, которые могут помочь вам:
- An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure")
- Перенаправление событий хранилища BLOB-объектов в пользовательскую конечную веб-точку (предварительная версия)
- Monitor virtual machine changes with Azure Event Grid and Logic Apps (Отслеживание изменений виртуальной машины с помощью Azure Logic Apps и службы "Сетка событий Azure")
- Потоковая передача больших данных в хранилище данных