Использование Сетки событий для уведомлений об изменении данных в Конфигурации приложений
Из этой статьи вы узнаете, как настроить подписки на события Конфигурации приложений Azure для отправки событий изменения значения ключа в конечную веб-точку. Пользователи Конфигурации приложений Azure могут подписаться на события, которые создаются при изменении значений ключа. Эти события могут активировать веб-перехватчики, Функции Azure, очереди службы хранилища Azure или любой другой обработчик событий, который поддерживается Сеткой событий Azure. Как правило, события отправляются на конечную точку, которая обрабатывает данные событий и выполняет соответствующие действия. Но в этой статье для простоты события отправляются в веб-приложение, которое собирает и отображает сообщения.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись. При желании вы также можете использовать Azure Cloud Shell.
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>
в расположении westus. Замените <resource_group_name>
уникальным именем для группы ресурсов.
az group create --name <resource_group_name> --location westus
Создание хранилища Конфигурации приложений
Замените <appconfig_name>
уникальным именем для хранилища конфигурации, а <resource_group_name>
— именем созданной ранее группой ресурсов. Имя должно быть уникальным, поскольку оно используется в качестве имени DNS.
az appconfig create \
--name <appconfig_name> \
--location westus \
--resource-group <resource_group_name> \
--sku free
Создание конечной точки сообщения
Перед подпиской на раздел необходимо создать конечную точку для сообщения о событии. Обычно конечная точка выполняет действия на основе данных событий. Чтобы упростить работу с этим руководством, разверните готовое веб-приложение, которое отображает сообщения о событиях. Развернутое решение содержит план службы приложений, веб-приложение службы приложений и исходный код из 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/master/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 информацию о том, какие события вы намерены отслеживать и куда их следует отправлять. В следующем примере создается подписка на созданную Конфигурацию приложений и передается URL-адрес веб-приложения в качестве конечной точки для уведомления о событиях. Замените <event_subscription_name>
именем подписки на событие. Для <resource_group_name>
и <appconfig_name>
используйте созданные ранее значения.
Конечная точка веб-приложения должна содержать суффикс /api/updates/
.
appconfigId=$(az appconfig show --name <appconfig_name> --resource-group <resource_group_name> --query id --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--source-resource-id $appconfigId \
--name <event_subscription_name> \
--endpoint $endpoint
Теперь снова откройте веб-приложение и убедитесь, что оно успешно получило отправленное событие подтверждения подписки. Щелкните значок с изображением глаза, чтобы развернуть данные события. Сетка событий отправляет событие подтверждения, чтобы конечная точка могла подтвердить, что она готова получать данные события. Веб-приложение содержит код для проверки подписки.
Активация события Конфигурации приложений
Теперь необходимо активировать событие, чтобы увидеть, как Сетка событий Azure распределяет сообщение к вашей конечной точке. Создайте значение ключа с помощью предыдущего <appconfig_name>
.
az appconfig kv set --name <appconfig_name> --key Foo --value Bar --yes
Вы активировали событие, а служба "Сетка событий" отправила сообщение в конечную точку, настроенную вами при оформлении подписки. Откройте веб-приложение и просмотрите в нем отправленные события.
[{
"id": "00000000-0000-0000-0000-000000000000",
"topic": "/subscriptions/{subscription-id}/resourceGroups/eventDemoGroup/providers/microsoft.appconfiguration/configurationstores/{appconfig-name}",
"subject": "https://{appconfig-name}.azconfig.io/kv/Foo",
"data": {
"key": "Foo",
"etag": "a1LIDdNEIV6wCnfv3xaip7fMXD3",
"syncToken":"zAJw6V16=Njo1IzMzMjE3MzA=;sn=3321730"
},
"eventType": "Microsoft.AppConfiguration.KeyValueModified",
"eventTime": "2019-05-31T18:59:54Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Очистка ресурсов
Если вы планируете продолжать работу с этой Конфигурацией приложений и подпиской на события, не очищайте ресурсы, созданные при работе с этой статьей. Если вы не планируете продолжать работу, удалите все созданные ресурсы в этой статье.
Замените <resource_group_name>
именем группы ресурсов, созданной ранее.
az group delete --name <resource_group_name>
Следующие шаги
Теперь, когда вы знаете, как создавать разделы и подписки на события, ознакомьтесь с дополнительными сведениями о событиях "ключ — значение" и возможностях службы "Сетка событий".
- Реагирование на события конфигурации приложения Azure
- An introduction to Azure Event Grid (Общие сведения о службе "Сетка событий Azure")
- Обработчики Сетки событий Azure