Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы создадите тему, создадите подписку на эту тему с помощью конечной точки веб-хука, активируете пример события и просмотрите результат. Как правило, события отправляются на конечную точку, которая обрабатывает данные событий и выполняет соответствующие действия. Но в этом руководстве для простоты события отправляются в веб-приложение, которое собирает и отображает сообщения.
Предварительные требования
- Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
- Если вы не знакомы с Сеткой событий Azure, ознакомьтесь с общими сведениями о сетке событий.
Создание пользовательской темы
Раздел сетки событий содержит определяемую пользователем конечную точку, в которой можно размещать свои события.
Войдите на портал Azure.
На панели поиска в разделе введите Разделы сетки событий, а затем в раскрывающемся списке выберите Разделы сетки событий.
На странице Разделы сетки событий на панели инструментов выберите + Создать.
На странице Создать раздел выполните следующие действия:
Выберите свою подписку Azure.
Щелкните имеющуюся группу ресурсов или выберите Создать и введите имя для новой группы ресурсов.
Укажите уникальное имя для пользовательского раздела. Имя раздела должно быть уникальным, так как оно представлено записью службы доменных имен (DNS). Не используйте имя, указанное на изображении. Вместо этого создайте собственное имя — оно должно находиться в диапазоне от 3 до 50 символов и содержать только значения a-z, A-Z, 0-9 и
-.Выберите расположение для раздела "Сетка событий".
Нажмите Review + create внизу страницы.
На вкладке Просмотр и создание на странице Создание раздела выберите Создать.
После завершения развертывания выберите Переход к ресурсу, чтобы открыть страницу Раздел сетки событий для вашего раздела. Оставьте эту страницу открытой. Вы используете его позже в быстром старте.
Примечание.
Чтобы упростить быстрое начало, вы используете только страницу Основы для создания темы. Подробные инструкции по настройке параметров сети, безопасности и места расположения данных на других страницах мастера см. в статье Создание пользовательской темы.
Создание конечной точки сообщения
Перед созданием подписки на пользовательскую тему создайте конечную точку для сообщения о событии. Обычно конечная точка выполняет действия на основе данных событий. Чтобы упростить это краткое руководство, вы развернете готовое веб-приложение, отображающее сообщения о событиях. Развернутое решение содержит план службы приложений, веб-приложение службы приложений и исходный код из GitHub.
В статье выберите «Развернуть в Azure», чтобы развернуть решение на вашей подписке. На портале Azure укажите значения остальных параметров.
На странице "Пользовательское развертывание " выполните следующие действия:
На странице Отзыв и создание выберите Создать.
Завершение развертывания может занять несколько минут. Выберите оповещения (значок колокольчика) на портале, а затем выберите "Перейти к группе ресурсов".
На странице Resource group в списке ресурсов выберите то веб-приложение (contosoegriviewer в следующем примере), которое вы создали.
На странице Служба приложений для веб-приложения выберите URL-адрес для перехода на веб-сайт. URL-адрес должен иметь следующий формат:
https://<your-site-name>.azurewebsites.net.Убедитесь, что вы видите сайт, но события еще не размещены на нем.
Подписка на пользовательскую тему
Подпишитесь на раздел "Сетка событий", чтобы сообщить сетке событий, какие события нужно отслеживать и куда отправлять события.
На странице "Тема сетки событий" для настраиваемой темы выберите + Подписка на события в панели инструментов.
На странице Создать подписку на событие выполните следующие действия:
Укажите имя для подписки на событие.
Выберите веб-хук в качестве типа конечной точки.
Выберите Выбрать конечную точку.
Для конечной точки веб-перехватчика укажите URL-адрес веб-приложения и добавьте
api/updatesк URL-адресу домашней страницы. Выберите Подтвердить выбор.Вернитесь на страницу Создать подписку на событие и выберите Создать.
Просмотрите веб-приложение еще раз и обратите внимание, что событие проверки подписки отправляется в него. Щелкните значок с изображением глаза, чтобы развернуть данные события. Сетка событий отправляет событие подтверждения, чтобы конечная точка могла подтвердить, что она готова получать данные события. Веб-приложение содержит код для проверки подписки.
Отправьте событие в вашу тему
Теперь активируйте событие, чтобы узнать, как сетка событий распределяет сообщение в конечную точку. Отправьте тестовое событие в пользовательский раздел с помощью PowerShell или Azure CLI. Как правило, приложение или служба Azure отправляет данные события.
В первом примере используется Azure CLI. Он получает URL-адрес и ключ для пользовательской темы, а также пример данных события. Используйте имя пользовательской темы для <topic name>. Будет создан пример данных событий. Элемент data JSON является полезной нагрузкой вашего события. Любой корректно сформированный JSON может находиться в этом поле. Кроме того, можно использовать поле темы для дополнительной маршрутизации и фильтрации. CURL — это служебная программа, которая отправляет HTTP-запросы.
Azure CLI
На портале Azure выберите Cloud Shell. Cloud Shell откроется в нижней области веб-браузера.
Если Cloud Shell открывает сеанс PowerShell, выберите "Переключиться на Bash " в левом верхнем углу окна Cloud Shell. Если нет, перейдите к следующему шагу.
Выполните следующую команду, чтобы получить конечную точку для раздела. После копирования и вставки команды обновите имя раздела и имя группы ресурсов перед выполнением команды. Вы публикуете примеры событий в этой конечной точке раздела.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)Выполните следующую команду, чтобы получить ключ для пользовательского раздела. После копирования и вставки команды обновите имя раздела и имягруппы ресурсов перед выполнением команды. Это первичный ключ раздела Сетки событий. Чтобы получить этот ключ на портале Azure, перейдите на вкладку Ключи доступа на странице Раздел Сетки событий. Чтобы опубликовать событие в пользовательском разделе, вам нужен ключ доступа.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)Скопируйте следующую инструкцию с определением события и нажмите клавишу ВВОД.
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 , чтобы опубликовать событие. В команде установите заголовок
aeg-sas-keyна значение ключа доступа, который вы получили ранее.curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Azure PowerShell
Второй пример использует PowerShell для выполнения аналогичных действий.
На портале Azure выберите Cloud Shell (или перейдите по адресу
https://shell.azure.com/). Cloud Shell откроется в нижней области веб-браузера.
В левом верхнем углу окна Cloud Shell выберите PowerShell. В разделе Azure CLI приведено изображение примера окна Cloud Shell.
Задайте следующие переменные. После копирования и вставки команды перед ее выполнением измените соответствующим образом имя раздела и имя группы ресурсов.
Группа ресурсов.
$resourceGroupName = "<resource group name>"Имя раздела Сетки событий.
$topicName = "<topic name>"Выполните следующую команду, чтобы получить конечную точку и ключи для раздела:
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicNameПодготовьте событие. Скопируйте и выполните инструкции в окне Cloud Shell.
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct body using Hashtable $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert event body from Hashtable to JSON Object #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"Используйте командлет Invoke-WebRequest для отправки события.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Проверка в средстве просмотра Сетки событий
Вы активировали событие, а сетка событий отправила сообщение в конечную точку, настроенную при подписке. Откройте веб-приложение и просмотрите в нем отправленные события.
Очистка ресурсов
Если вы планируете продолжать работу с этим событием, не удаляйте ресурсы, созданные в рамках этой статьи. В противном случае удалите ресурсы, созданные при работе с этой статьей.
Выберите группы ресурсов в меню слева. Если вы не видите его в меню слева, выберите "Все службы " в меню слева и выберите "Группы ресурсов".
Выберите группу ресурсов, чтобы открыть страницу "Группа ресурсов ".
Выберите "Удалить группу ресурсов " на панели инструментов.
Подтвердите удаление. Для этого введите имя группы ресурсов и выберите Удалить.
Другая группа ресурсов, показанная на рисунке, создана и используется в окне Cloud Shell. Удалите ее, если вы не планируете использовать окно Cloud Shell в дальнейшем.
Связанный контент
Теперь, когда вы знаете, как создавать пользовательские раздели и подписки на события, ознакомьтесь с дополнительными сведениями о сетке событий, которые могут помочь вам: