Доставка событий в веб-перехватчики с помощью разделов пространства имен — портал Azure (предварительная версия)
В этой статье приводятся пошаговые инструкции по публикации событий для Сетка событий Azure в формате JSON CloudEvents и доставке этих событий с помощью модели принудительной доставки. Чтобы быть конкретным, вы публикуете события в разделе пространства имен в Сетке событий и отправляете эти события из подписки на событие в назначение обработчика веб-перехватчика. Дополнительные сведения о модели доставки push-уведомлений см. в обзоре доставки push-уведомлений.
Примечание.
Сетка событий Azure пространства имен в настоящее время поддерживает маркер подписанных URL-адресов (SAS) и проверку подлинности ключей доступа.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Создание пространства имен сетки событий
Пространство имен Сетки событий предоставляет определяемую пользователем конечную точку, в которую вы публикуете события. В следующем примере создается пространство имен в группе ресурсов с помощью Bash в Azure Cloud Shell. Имя пространства имен должно быть уникальным, так как это часть записи системы доменных имен (DNS).
Перейдите на портал Azure.
В строке поиска в разделе введите
Event Grid Namespaces
и выберитеEvent Grid Namespaces
из результатов.На странице пространств имен сетки событий нажмите кнопку +Создать на панели команд.
На странице "Создание пространства имен" выполните следующие действия.
- Выберите подписку Azure, в которой нужно создать пространство имен.
- Создайте новую группу ресурсов, выбрав "Создать" или выбрав существующую группу ресурсов.
- Введите имя для пространства имен.
- Выберите расположение, в котором нужно создать группу ресурсов.
- Нажмите Проверка и создание.
- На странице Отзыв и создание выберите Создать.
На странице развертывания выберите "Перейти к ресурсу" после успешного развертывания.
Получение ключа доступа
- На странице пространства имен сетки событий выберите клавиши Access в меню слева.
- Нажмите кнопку копирования рядом с ключом доступа.
- Сохраните ключ доступа где-то. Он понадобится позже при работе с кратким руководством.
Создание раздела в пространстве имен
Создайте раздел, содержащий все события, опубликованные в конечной точке пространства имен.
- Выберите разделы в меню слева.
- На странице "Темы" выберите "+ Раздел" на панели команд.
- На странице "Создание раздела" выполните следующие действия:
Создание конечной точки сообщения
Перед подпиской на события создадим конечную точку для сообщения о событии. Обычно конечная точка выполняет действия на основе данных событий. Чтобы упростить это краткое руководство, вы развернете предварительно созданное веб-приложение , отображающее сообщения о событиях. Развернутое решение содержит план службы приложений, веб-приложение службы приложений и исходный код из GitHub.
Выберите Развернуть в Azure, чтобы развернуть решение в своей подписке.
На странице Настраиваемое развертывание выполните следующие действия:
В качестве группы ресурсов выберите ту же группу ресурсов, которую вы использовали при создании учетной записи хранения. После завершения работы с руководством будет проще удалить группу ресурсов.
В поле Имя сайта введите имя веб-приложения.
В поле Имя плана размещения введите имя плана службы приложений для размещения веб-приложения.
Выберите Review + create (Просмотреть и создать).
На странице Отзыв и создание выберите Создать.
Развертывание занимает несколько минут. На странице развертывания выберите "Перейти к группе ресурсов".
На странице Группа ресурсов в списке ресурсов выберите созданное вами веб-приложение. В списке вы также увидите план службы приложений и учетную запись хранения.
На странице Служба приложений для веб-приложения выберите URL-адрес для перехода на веб-сайт. URL-адрес должен иметь следующий формат:
https://<your-site-name>.azurewebsites.net
.Убедитесь, что вы видите сайт, но события еще не размещены на нем.
Внимание
Держите окно средства просмотра Сетки событий Azure открытым, чтобы вы могли видеть события по мере их публикации.
Создание подписки на событие
Создайте подписку на событие, задав режим доставки для push-отправки, которая поддерживает отправку.
- Перейдите на вкладку или окно со страницей пространства имен сетки событий, открытой на вкладке или окне со страницей пространства имен Центров событий.
- На странице пространства имен сетки событий выберите разделы в меню слева.
- На странице разделов выберите тему, созданную на предыдущем шаге.
- Выберите +Подписка на панели команд.
- На странице "Создание подписки на события" выполните следующие действия.
На вкладке "Базовый " введите имя подписки на событие.
Выберите "Отправить" для режима доставки событий.
Для типа конечной точки выберите веб-перехватчик.
Выберите " Настроить конечную точку".
На странице веб-перехватчика укажите конечную точку (например
https://spegridsite0520.azurewebsites.net/api/updates
: ), как показано в следующем примере, и нажмите кнопку "Подтвердить выбор".Вернитесь на страницу "Создать подписку" и нажмите кнопку "Создать".
Отправка событий в раздел
Теперь отправьте пример события в раздел пространства имен, выполнив действия, описанные в этом разделе.
Объявление переменных
Запустите Cloud Shell в портал Azure. Переключитесь на Bash.
Выполните следующую команду, чтобы объявить переменную для хранения имени группы ресурсов. Замените
RESOUREGROUPNAME
именем группы ресурсов Azure.resource_group=RESOURCEGROUPNAME
В Cloud Shell выполните следующую команду, чтобы объявить переменную для хранения имени пространства имен. Замените
NAMESPACENAME
именем пространства имен Сетки событий.namespace=NAMESPACENAME
Выполните следующую команду, чтобы объявить переменную, чтобы сохранить значение ключа доступа, которое вы указали ранее. Замените
ACCESSKEY
значением ключа доступа к пространству имен Сетки событий.key=ACCESSKEY
В Cloud Shell выполните следующую команду, чтобы объявить переменную для хранения имени пространства имен.
topic=TOPICNAME
Публикация события
Получите имя узла пространства имен. Он используется для создания конечной точки пространства имен HTTP, в которую отправляются события. Следующие операции были впервые доступны в версии
2023-06-01-preview
API. Вы также можете получить имя узла на странице обзора пространства имен Сетки событий в портал Azure.publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
Создайте пример события, соответствующего требованиям CloudEvents :
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
Элемент
data
— полезные данные события. Любое значение JSON с правильным форматом может быть в этом поле. Дополнительные сведения о свойствах (также известных как атрибуты контекста), которые могут идти в событии, см . в спецификациях CloudEvents .Используйте CURL для отправки события в раздел. CURL — это служебная программа, которая отправляет HTTP-запросы.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Убедитесь, что средство просмотра Сетка событий Azure получило событие
Убедитесь, что веб-приложение просмотра Сетка событий Azure отображает события, полученные из сетки событий.
Связанный контент
В этом кратком руководстве вы использовали веб-перехватчик в качестве обработчика событий. Краткое руководство по использованию концентратора событий Azure в качестве обработчика событий см. в статье "Доставка событий в Центры событий Azure с помощью разделов пространства имен".