Учебник. Отслеживание изменений виртуальной машины с помощью службы "Сетка событий Azure" и Azure Logic Apps
Область применения: Azure Logic Apps (потребление)
Вы можете отслеживать определенные события, происходящие в ресурсах Azure или внешних ресурсах, и реагировать на них с помощью службы "Сетка событий Azure" и Azure Logic Apps. С помощью Azure Logic Apps можно создать автоматизированный рабочий процесс приложения логики потребления с минимальным кодом. Эти ресурсы могут публиковать события в службу Сетка событий Azure. В свою очередь, служба "Сетка событий Azure" передает эти события подписчикам, использующим очереди, веб-привязки или концентраторы событий в качестве конечных точек. В качестве подписчика рабочий процесс ожидает, пока эти события попадут в службу "Сетка событий Azure", прежде чем выполнять шаги по обработке событий.
Для примера ниже приведено несколько событий, которые издатели могут отправлять подписчикам через службу "Сетка событий Azure".
Создание, чтение, обновление или удаление ресурса. Например, можно отслеживать изменения, за которые может взиматься плата по подписке Azure и которые могут отразиться на вашем счете.
Добавление или удаление пользователя в подписке Azure.
Ваше приложение выполняет определенное действие.
В очереди появляется новое сообщение.
В этом руководстве создается ресурс приложения логики потребления, который выполняется в мультитенантных Azure Logic Apps и основан на модели ценообразования на потребление. С помощью этого ресурса приложения логики вы создадите рабочий процесс, который отслеживает изменения на виртуальной машине, и отправляет сообщения электронной почты об этих изменениях. При создании рабочего процесса с подпиской на события ресурса Azure события передаются из этого ресурса в рабочий процесс с помощью службы "Сетка событий Azure".
В этом руководстве описано следующее:
- Создание ресурса приложения логики и рабочего процесса, отслеживающего события с помощью службы "Сетка событий".
- Добавление условия, проверяющего наличие изменений виртуальной машины.
- Отправка электронного сообщения при изменении виртуальной машины.
Необходимые компоненты
Учетная запись и подписка Azure. Если у вас еще нет подписки Azure, зарегистрируйтесь для получения бесплатной учетной записи Azure.
Учетная запись службы электронной почты, поддерживаемая Azure Logic Apps, для отправки уведомлений, например Office 365 Outlook, Outlook.com или Gmail. Сведения о дополнительных поставщиках см. в списке соединителей.
В этом руководстве используется учетная запись Office 365 Outlook. Если используется другая учетная запись электронной почты, общие шаги остаются неизменными, однако интерфейс может выглядеть несколько иначе.
Внимание
Только учетные записи для бизнеса G-Suite могут использовать соединитель Gmail без ограничений в приложениях логики. Если у вас есть учетная запись потребителя Gmail, вы можете использовать этот соединитель только с определенными утвержденными Google службами. Кроме того, вы можете создать клиентское приложение Google, которое будет использоваться для проверки подлинности в соединителе Gmail. Дополнительные сведения см. в статье Политики безопасности и конфиденциальности данных для соединителей Google в Azure Logic Apps.
Виртуальная машина, которая находится отдельно в собственной группе ресурсов Azure. Создайте виртуальную машину, используя сведения из учебника по созданию виртуальной машины, если вы еще не сделали этого. Чтобы настроить виртуальную машину для публикации событий, не нужны никакие дополнительные действия.
Если у вас есть брандмауэр, который ограничивает трафик определенными IP-адресами, необходимо настроить брандмауэр, чтобы разрешить доступ к Azure Logic Apps для взаимодействия через брандмауэр. Необходимо разрешить доступ как для входящих, так и исходящих IP-адресов, используемых Azure Logic Apps в регионе Azure, где вы создаете приложение логики.
В этом примере используются управляемые соединители, для которых необходимо настроить брандмауэр таким образом, чтобы разрешить доступ для всех исходящих IP-адресов управляемого соединителя в регионе Azure для ресурса приложения логики.
Создание ресурса приложения логики
Войдите на портал Azure с помощью своей учетной записи Azure.
На домашней странице Azure последовательно выберите Создать ресурс>Интеграция>Приложение логики.
В разделе Создание приложения логики укажите сведения о своем ресурсе приложения логики:
Свойство Обязательное поле значение Описание Подписка Да <имя-подписки-Azure> Выберите одну подписку Azure для всех служб в этом учебнике. Группа ресурсов Да <Azure-resource-group> Имя группы ресурсов Azure для приложения логики, которое вы можете выбрать для всех служб в этом учебнике. Имя приложения логики Да <logic-app-name> Укажите уникальное имя для приложения логики. Опубликовать Да Рабочий процесс Выберите целевую среду для развертывания приложения логики. В рамках работы с этим руководством выберите Рабочий процесс, который развертывается в Azure. Регион Да <Azure-region> Выберите один регион для всех служб в этом руководстве. Тип плана Да Потребление Тип ресурса для приложения логики. В рамках работы с этим руководством выберите Потребление. Примечание.
Если в дальнейшем требуется использовать операции Сетки событий Azure с ресурсом приложения логики категории "Стандартный", создайте рабочий процесс с отслеживанием состояния, а не без него. Это руководство относится только к приложениям логики потребления, в которых используется другой пользовательский интерфейс. Чтобы добавить Сетка событий Azure операции в рабочий процесс в конструкторе, на панели выбора операций убедитесь, что выбрана вкладка Azure. Дополнительные сведения о мультитенантных и однотенантных Azure Logic Apps см. в разделе "Один клиент" и "Мультитенант".
Когда все будет готово, выберите Просмотр и создание. На следующей панели подтвердите предоставленные сведения и нажмите кнопку Создать.
Когда Azure развернет ваше приложение логики, выберите Перейти к ресурсу.
В конструкторе рабочих процессов отображается страница с вводным видео и часто используемыми триггерами.
Прокрутите окно видео и раздел с часто используемыми триггерами.
В разделе Шаблоны выберите Пустое приложение логики.
Примечание.
Коллекция шаблонов рабочих процессов доступна только для приложений логики потребления, а не стандартных приложений логики.
Теперь в конструкторе рабочих процессов отображаются триггеры, которые можно использовать для запуска приложения логики. Каждый рабочий процесс должен начинаться с триггера, который срабатывает на событие или при выполнении конкретного условия. При каждой активации триггера Azure Logic Apps создает экземпляр рабочего процесса для выполнения приложения логики.
Добавьте триггер Сетки событий Azure
Теперь добавьте триггер Сетки событий Azure, который будет использоваться для отслеживания группы ресурсов для виртуальной машины.
В конструкторе в поле поиска введите
event grid
. В списке триггеров выберите При возникновении события ресурса.При появлении запроса войдите в Сетку событий Azure, используя учетные данные учетной записи Azure. В списке клиентов, в котором показан клиент Microsoft Entra, связанный с подпиской Azure, проверьте, отображается ли правильный клиент, например:
Примечание.
Если вы вошли с помощью личной учетной записи Майкрософт, например @outlook.com или @hotmail.com, триггер службы "Сетка событий Azure" может отображаться неправильно. В качестве обходного решения выберите "Подключиться к субъекту-службе" или пройти проверку подлинности в качестве члена Microsoft Entra, связанного с вашей подпиской Azure, например имя пользователя@emailoutlook.onmicrosoft.com.
Теперь подпишите приложение логики на события издателя. Укажите сведения о подписке на события, как указано в следующей таблице, например:
Свойство Обязательное поле значение Описание Подписка Да <event-publisher-Azure-subscription-name> Выберите имя для подписки Azure, связанной с издателем событий. Для работы с этим руководством выберите для виртуальной машины имя подписки Azure. Тип ресурса Да <event-publisher-Azure-resource-type> Выберите тип ресурса Azure для издателя событий. Дополнительные сведения о типах ресурсов Azure см. в статье Поставщики и типы ресурсов Azure. Для работы с этим учебником выберите значение Microsoft.Resources.ResourceGroups
, чтобы отслеживать группы ресурсов Azure.Имя ресурса Да <event-publisher-Azure-resource-name> Выберите имя ресурса Azure для издателя событий. Этот список зависит от выбранного типа ресурса. Для работы с этим учебником выберите имя группы ресурсов Azure, содержащей виртуальную машину. Элемент типа события No <event-types> Выберите один или несколько определенных типов событий для фильтрации и отправки в Сетку событий Azure. Например, можно дополнительно добавить эти типы событий, чтобы определить, когда ресурсы изменяются или удаляются: -
Microsoft.Resources.ResourceActionSuccess
-Microsoft.Resources.ResourceDeleteSuccess
-Microsoft.Resources.ResourceWriteSuccess
Дополнительные сведения см. в следующих разделах:
- Azure Event Grid event schema for resource groups (Схема событий Сетки событий Azure для групп ресурсов)
- Understand event filtering for Event Grid subscriptions (Сведения о фильтрации событий для подписок Сетки событий)
- Фильтрация событий для Сетки событий AzureЧтобы добавить необязательные свойства, щелкните Добавить новый параметр, а затем выберите необходимые свойства. No {просмотрите описания} * Фильтр префикса: в этом руководстве оставьте это свойство пустым. Фильтр по умолчанию соответствует всем значениям. Тем не менее можно указать строку префикса в качестве фильтра, например путь и параметр для определенного ресурса. * Фильтр суффикса: в этом руководстве оставьте это свойство пустым. Фильтр по умолчанию соответствует всем значениям. Тем не менее можно указать строку суффикса в качестве фильтра, например расширение имени файла, если вас интересуют только определенные типы файлов.
* Имя подписки. В этом руководстве можно указать уникальное имя подписки на события.
Сохраните рабочий процесс приложения логики. На панели инструментов конструктора выберите Сохранить. Чтобы свернуть и скрыть сведения о действии в рабочем процессе, выберите заголовок окна действия.
При сохранении рабочего процесса приложения логики с триггером службы "Сетка событий Azure" Azure автоматически создает подписку на события для приложения логики выбранного ресурса. Таким образом, когда ресурс публикует событие в службе "Сетка событий Azure", она автоматически отправляет это событие в приложение логики. Это событие инициирует и запускает рабочий процесс приложения логики, который вы определите на следующих шагах.
Теперь приложение логики активно и ожидает передачи данных событий службы "Сетка событий Azure". Оно не будет выполнять никаких действий, пока они не будут добавлены в рабочий процесс.
Добавить условие
Чтобы запускать рабочий процесс приложения логики только в том случае, когда происходит определенное событие или выполняется определенная операция, добавьте условие, проверяющее наличие операции Microsoft.Compute/virtualMachines/write. Если это условие имеет значение true, рабочий процесс приложения логики отправляет вам электронное сообщение со сведениями об обновленной виртуальной машине.
В конструкторе рабочих процессов для триггера Сетки событий Azure выберите Новый шаг.
В разделе Выберите действие введите фильтр
condition
в поле поиска. В списке действий выберите действие Условие.Конструктор рабочих процессов добавляет пустое условие в рабочий процесс, включая пути действий для выполнения согласно значениям условия True и False.
Измените заголовок условия на
If a virtual machine in your resource group has changed
. В строке заголовка условия нажмите кнопку многоточия (…) и выберите Переименовать.Создайте условие, которое проверяет событие
body
на наличие объектаdata
, у которого свойствоoperationName
соответствует операцииMicrosoft.Compute/virtualMachines/write
. Узнайте больше о схеме событий службы "Сетка событий Azure".В первой строке щелкните внутри левого поля под элементом И. Когда отобразится список динамического содержимого, выберите Выражение.
В редакторе выражений введите это выражение, которое возвращает имя операции из триггера, а затем нажмите кнопку ОК:
triggerBody()?['data']['operationName']
Например:
В среднем поле укажите для оператора значение равно.
В поле справа укажите операцию, которую требуется отслеживать. В этом примере будет использоваться следующее значение:
Microsoft.Compute/virtualMachines/write
По завершении условие будет выглядеть следующим образом:
При переключении из представления конструктора в представление кода и обратно выражение, указанное в условии, преобразуется в токен data.operationName:
Сохраните приложение логики
Отправка уведомлений по электронной почте
Теперь добавьте действие, чтобы вы могли получать электронное сообщение, когда заданное условие имеет значение true.
В поле условия Если значение true щелкните Добавить действие.
В разделе Выберите действие введите фильтр
send an email
в поле поиска. Найдите и выберите соединитель, соответствующий поставщику услуг электронной почты. Затем выберите действие "отправить сообщение" для соединителя. Например:Если у вас рабочая или учебная учетная запись, то выберите соединитель Office 365 Outlook.
Для личных учетных записей Майкрософт выберите соединитель Outlook.com.
Для учетных записей Gmail выберите соединитель Gmail.
В рамках этого руководства используется соединитель Office 365 Outlook. Если вы используете другой поставщик, то действия будут аналогичными, но пользовательский интерфейс может немного отличаться.
Если у вас уже есть подключение к поставщику электронной почты, войдите в соответствующую учетную запись при появлении запроса на проверку подлинности.
Измените имя действия отправки письма на следующее:
Send email when virtual machine updated
.Введите данные электронной почты, как показано в указанной ниже таблице:
Совет
Чтобы выбрать выходные данные предыдущих шагов в рабочем процессе, щелкните в поле ввода, чтобы открыть список динамического содержимого, или выберите Добавить динамическое содержимое. Выберите Дополнительно для каждого раздела в списке, чтобы отобразить дополнительные результаты. Чтобы закрыть список динамического содержимого, снова выберите Добавить динамическое содержимое.
Свойство Обязательное поле значение Описание Кому Да <получатель@домен> Введите электронный адрес получателя. Для тестировании можете использовать свой собственный адрес. Тема Да Resource updated:
ТемаВведите содержимое темы электронного сообщения. В рамках этого руководства введите указанный текст и выберите поле события Тема. Здесь тема электронного сообщения содержит имя обновленного ресурса (виртуальная машина). Текст Да Resource:
РазделEvent type:
Тип событияEvent ID:
ИдентификаторTime:
Время событияВведите содержимое текста сообщения электронной почты. Для этого учебника введите указанный текст и выберите поля Раздел, Тип события, Идентификатор и Время события, чтобы электронное сообщение содержало ресурс, запустивший событие, тип, метку времени и идентификатор события для обновления. В рамках этого учебника ресурсом является группа ресурсов Azure, выбранная в триггере. Чтобы добавить пустые строки в содержимое, нажмите Shift + ВВОД.
Примечание.
Если выбрать поле, которое представляет массив, конструктор автоматически добавит цикл For each для действия, которое ссылается на массив. Таким образом рабочий процесс приложения логики будет выполнять это действие для каждого элемента массива.
Теперь действие отправки электронного сообщения может выглядеть следующим образом.
Готовый рабочий процесс приложения логики может выглядеть следующим образом:
Сохраните приложение логики Чтобы свернуть и скрыть сведения о каждом действии в приложении логики, выберите заголовок окна действия.
Теперь приложение логики активно, но ожидает изменений в виртуальной машине, прежде чем что-либо выполнить. Чтобы проверить рабочий процесс, перейдите следующему разделу.
Проверка рабочего процесса приложения логики
Чтобы проверить, получает ли рабочий процесс указанные события, обновите виртуальную машину.
Например, можно изменить размер виртуальной машины.
Через несколько секунд вы должны получить электронное сообщение. Например:
Чтобы просмотреть журнал триггера и выполнения приложения логики, в меню приложения выберите Обзор. Чтобы просмотреть дополнительные сведения о выполнении, выберите строку для этого выполнения.
Чтобы просмотреть входные и выходные данные каждого действия, разверните действие, которое необходимо просмотреть. Эти сведения помогут вам диагностировать и устранить проблемы в приложении логики.
Поздравляем! Вы создали и запустили рабочий процесс приложения логики, который отслеживает события ресурса с помощью службы "Сетка событий Azure" и отправляет вам электронные сообщения при возникновении этих событий. Вы также узнали, как можно легко создать рабочие процессы, позволяющие автоматизировать и интегрировать системы и облачные службы.
Можно отслеживать другие изменения в конфигурации с помощью сеток событий и приложений логики, например:
- виртуальная машина получает права доступа Azure RBAC (управление доступом на основе ролей в Azure);
- вносятся изменения в группу безопасности сети (NSG) сетевого интерфейса;
- добавляются или удаляются диски виртуальной машины;
- сетевому адаптеру виртуальной машины назначается общедоступный IP-адрес.
Очистка ресурсов
В этом руководстве используются ресурсы и выполняются действия, подлежащие оплате по подписке Azure. Завершив проверку и работу с руководством, обязательно отключите или удалите все ресурсы, за использование которых не имеете намерения платить.
Чтобы остановить выполнение рабочего процесса, не удаляя данные, отключите приложение. В меню приложения логики выберите Обзор. На панели инструментов нажмите кнопку Отключить.
Совет
Если меню приложения логики не отображается, попробуйте вернуться к панели мониторинга Azure и повторно откройте приложение логики.
Чтобы удалить приложение логики без возможности восстановления, в меню приложения логики выберите Обзор. На панели инструментов нажмите кнопку удалить. Подтвердите удаление приложения логики и выберите Удалить.
Следующие шаги
Чтобы узнать, как публиковать события в Сетке событий Azure и получать события из нее с использованием разных языков программирования, ознакомьтесь с приведенными ниже примерами.