Краткое руководство. Маршрутизация событий Кэш Azure для Redis в веб-конечную точку с помощью Azure CLI
Сетка событий Azure — это служба обработки событий для облака. В этом кратком руководстве показано, как с помощью Azure CLI подписаться на события Кэша Azure для Redis, активировать такое событие и просмотреть полученные результаты.
Как правило, события отправляются на конечную точку, которая обрабатывает данные событий и выполняет соответствующие действия. Для простоты в этом кратком руководстве описана отправка событий непосредственно в веб-приложение, которое будет собирать и отображать эти сообщения. Выполнив описанные в этом кратком руководстве действия, вы увидите, что данные событий отправлены в веб-приложение.
Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Если вы решили установить и использовать интерфейс командной строки локально, для работы с этим кратким руководством вам понадобится Azure CLI последней версии, то есть 2.0.70 или более поздней. Чтобы узнать версию, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.
Если вы не используете Cloud Shell, сначала выполните вход с помощью az login
.
Создание или изменение группы ресурсов
Разделы Сетки событий развертываются как отдельные ресурсы Azure и должны быть подготовлены в группе ресурсов Azure. Группа ресурсов Azure — это логическая коллекция, в которой выполняется развертывание и администрирование ресурсов Azure.
Создайте группу ресурсов с помощью команды az group create.
В следующем примере создается группа ресурсов с именем <resource_group_name>
в расположении westcentralus. Замените <resource_group_name>
уникальным именем для группы ресурсов.
az group create --name <resource_group_name> --location westcentralus
Создание экземпляра кэша
#/bin/bash
# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0
Создание конечной точки сообщения
Перед подпиской на раздел необходимо создать конечную точку для сообщения о событии. Обычно конечная точка выполняет действия на основе данных событий. Чтобы упростить работу с этим руководством, разверните готовое веб-приложение, которое отображает сообщения о событиях. Развернутое решение содержит план службы приложений, веб-приложение службы приложений и исходный код из GitHub.
Замените <your-site-name>
уникальным именем для вашего веб-приложения. Имя веб-приложения должно быть уникальным, так как оно включается в запись DNS.
sitename=<your-site-name>
az deployment group create \
--resource-group <resource_group_name> \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
--parameters siteName=$sitename hostingPlanName=viewerhost
Завершение развертывания может занять несколько минут. Когда развертывание успешно завершится, откройте веб-приложение и убедитесь, что оно работает. Откройте браузер и перейдите по адресу https://<your-site-name>.azurewebsites.net
.
Вы увидите сайт, на котором сейчас не отображаются никакие сообщения.
Включение поставщика ресурсов службы "Сетка событий"
Если вы еще не использовали службу "Сетка событий" в подписке Azure, вам, возможно, потребуется зарегистрировать поставщик ресурсов этой службы. Выполните следующую команду для регистрации поставщика:
az provider register --namespace Microsoft.EventGrid
Регистрация может занять некоторое время. Чтобы проверить состояние, выполните следующую команду:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Когда состояние
registrationState
изменится наRegistered
, вы сможете продолжить работу.
Подписка на экземпляр Кэша Azure для Redis
На этом шаге вы создадите подписку на раздел, чтобы Сетке событий было известно, какие события вы намерены отслеживать и куда их следует отправлять. В следующем примере создается подписка на экземпляр Кэша Azure для Redis, который вы создали ранее, и передается URL-адрес веб-приложения в качестве конечной точки для уведомления о событиях. Замените <event_subscription_name>
именем подписки на событие. Для <resource_group_name>
и <cache_name>
используйте созданные ранее значения.
Конечная точка веб-приложения должна содержать суффикс /api/updates/
.
cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--source-resource-id $cacheId \
--name <event_subscription_name> \
--endpoint $endpoint
Теперь снова откройте веб-приложение и убедитесь, что оно успешно получило отправленное событие подтверждения подписки. Щелкните значок с изображением глаза, чтобы развернуть данные события. Сетка событий отправляет событие подтверждения, чтобы конечная точка могла подтвердить, что она готова получать данные события. Веб-приложение содержит код для проверки подписки.
Активация события из Кэша Azure для Redis
Теперь необходимо активировать событие, чтобы увидеть, как Сетка событий Azure распределяет сообщение к вашей конечной точке. Давайте экспортируем данные, которые хранятся в экземпляре Кэша Azure для Redis. Здесь нам снова потребуются значения {cache_name}
и {resource_group_name}
, созданные ранее.
az redis export --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
--prefix '<prefix_for_exported_files>' \
--container '<SAS_url>'
Вы активировали событие, а служба "Сетка событий" отправила сообщение в конечную точку, настроенную вами при оформлении подписки. Откройте веб-приложение и просмотрите в нем отправленные события.
[{
"id": "e1ceb52d-575c-4ce4-8056-115dec723cff",
"eventType": "Microsoft.Cache.ExportRDBCompleted",
"topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
"data": {
"name": "ExportRDBCompleted",
"timestamp": "2020-12-10T18:07:54.4937063+00:00",
"status": "Succeeded"
},
"subject": "ExportRDBCompleted",
"dataversion": "1.0",
"metadataVersion": "1",
"eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]
Очистка ресурсов
Если вы планируете продолжать работу с этим экземпляром Кэша Azure для Redis и с этой подпиской на события, не удаляйте ресурсы, созданные при работе с этим кратким руководством. Если вы не планируете продолжать работу, удалите все созданные в этом кратком руководстве ресурсы.
Замените <resource_group_name>
именем группы ресурсов, созданной ранее.
az group delete --name <resource_group_name>
Следующие шаги
Теперь, когда вы знаете, как создавать разделы и подписки на события, ознакомьтесь с дополнительными сведениями о событиях Кэша Azure для Redis и возможностях службы "Сетка событий".
- Реагирование на события Кэша Azure для Redis
- An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure")