Учебник. Отслеживание изменений виртуальной машины с помощью службы "Сетка событий 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".

Screenshot showing the workflow designer with a workflow that monitors a virtual machine using Azure Event Grid.

В этом руководстве описано следующее:

  • Создание ресурса приложения логики и рабочего процесса, отслеживающего события с помощью службы "Сетка событий".
  • Добавление условия, проверяющего наличие изменений виртуальной машины.
  • Отправка электронного сообщения при изменении виртуальной машины.

Необходимые компоненты

Создание ресурса приложения логики

  1. Войдите на портал Azure с помощью своей учетной записи Azure.

  2. На домашней странице Azure последовательно выберите Создать ресурс>Интеграция>Приложение логики.

    Screenshot of Azure portal, showing button to create a logic app resource.

  3. В разделе Создание приложения логики укажите сведения о своем ресурсе приложения логики:

    Screenshot of logic apps creation menu, showing details like name, subscription, resource group, and location.

    Свойство Обязательное поле значение Описание
    Подписка Да <имя-подписки-Azure> Выберите одну подписку Azure для всех служб в этом учебнике.
    Группа ресурсов Да <Azure-resource-group> Имя группы ресурсов Azure для приложения логики, которое вы можете выбрать для всех служб в этом учебнике.
    Имя приложения логики Да <logic-app-name> Укажите уникальное имя для приложения логики.
    Опубликовать Да Workflow Выберите целевую среду для развертывания приложения логики. В рамках работы с этим руководством выберите Рабочий процесс, который развертывается в Azure.
    Регион Да <Azure-region> Выберите один регион для всех служб в этом руководстве.
    Тип плана Да Потребление Тип ресурса для приложения логики. В рамках работы с этим руководством выберите Потребление.

    Примечание.

    Если в дальнейшем требуется использовать операции Сетки событий Azure с ресурсом приложения логики категории "Стандартный", создайте рабочий процесс с отслеживанием состояния, а не без него. Это руководство относится только к приложениям логики потребления, в которых используется другой пользовательский интерфейс. Чтобы добавить Сетка событий Azure операции в рабочий процесс в конструкторе, на панели выбора операций убедитесь, что выбрана вкладка Azure. Дополнительные сведения о мультитенантных и однотенантных Azure Logic Apps см. в разделе "Один клиент" и "Мультитенантная" и среда службы интеграции.

  4. Когда все будет готово, выберите Просмотр и создание. На следующей панели подтвердите предоставленные сведения и нажмите кнопку Создать.

  5. Когда Azure развернет ваше приложение логики, выберите Перейти к ресурсу.

    В конструкторе рабочих процессов отображается страница с вводным видео и часто используемыми триггерами.

  6. Прокрутите окно видео и раздел с часто используемыми триггерами.

  7. В разделе Шаблоны выберите Пустое приложение логики.

    Примечание.

    Коллекция шаблонов рабочих процессов доступна только для приложений логики потребления, а не стандартных приложений логики.

    Screenshot showing Azure Logic Apps templates with selected

    Теперь в конструкторе рабочих процессов отображаются триггеры, которые можно использовать для запуска приложения логики. Каждый рабочий процесс должен начинаться с триггера, который срабатывает на событие или при выполнении конкретного условия. При каждой активации триггера Azure Logic Apps создает экземпляр рабочего процесса для выполнения приложения логики.

Добавьте триггер Сетки событий Azure

Теперь добавьте триггер Сетки событий Azure, который будет использоваться для отслеживания группы ресурсов для виртуальной машины.

  1. В конструкторе в поле поиска введите event grid. В списке триггеров выберите При возникновении события ресурса.

    Screenshot that shows the workflow designer with the selected Azure Event Grid trigger.

  2. При появлении запроса войдите в Сетку событий Azure, используя учетные данные учетной записи Azure. В списке клиентов, в котором показан клиент Microsoft Entra, связанный с подпиской Azure, проверка, что отображается правильный клиент, например:

    Screenshot that shows the workflow designer with the Azure sign-in prompt to connect to Azure Event Grid.

    Примечание.

    Если вы вошли с помощью личной учетной записи Майкрософт, например @outlook.com или @hotmail.com, триггер службы "Сетка событий Azure" может отображаться неправильно. В качестве обходного решения выберите Подключение с субъектом-службой или выполните проверку подлинности в качестве члена Microsoft Entra, связанного с вашей подпиской Azure, например имя пользователя@emailoutlook.onmicrosoft.com.

  3. Теперь подпишите приложение логики на события издателя. Укажите сведения о подписке на события, как указано в следующей таблице, например:

    Screenshot that shows the workflow designer with the trigger details editor open.

    Свойство Обязательное поле значение Описание
    Подписка Да <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 {просмотрите описания} * Фильтр префикса: в этом руководстве оставьте это свойство пустым. Фильтр по умолчанию соответствует всем значениям. Тем не менее можно указать строку префикса в качестве фильтра, например путь и параметр для определенного ресурса.

    * Фильтр суффикса: в этом руководстве оставьте это свойство пустым. Фильтр по умолчанию соответствует всем значениям. Тем не менее можно указать строку суффикса в качестве фильтра, например расширение имени файла, если вас интересуют только определенные типы файлов.

    * Имя подписки. В этом руководстве можно указать уникальное имя подписки на события.

  4. Сохраните рабочий процесс приложения логики. На панели инструментов конструктора выберите Сохранить. Чтобы свернуть и скрыть сведения о действии в рабочем процессе, выберите заголовок окна действия.

    Screenshot that shows the workflow designer and the

    При сохранении рабочего процесса приложения логики с триггером службы "Сетка событий Azure" Azure автоматически создает подписку на события для приложения логики выбранного ресурса. Таким образом, когда ресурс публикует событие в службе "Сетка событий Azure", она автоматически отправляет это событие в приложение логики. Это событие инициирует и запускает рабочий процесс приложения логики, который вы определите на следующих шагах.

Теперь приложение логики активно и ожидает передачи данных событий службы "Сетка событий Azure". Оно не будет выполнять никаких действий, пока они не будут добавлены в рабочий процесс.

Добавить условие

Чтобы запускать рабочий процесс приложения логики только в том случае, когда происходит определенное событие или выполняется определенная операция, добавьте условие, проверяющее наличие операции Microsoft.Compute/virtualMachines/write. Если это условие имеет значение true, рабочий процесс приложения логики отправляет вам электронное сообщение со сведениями об обновленной виртуальной машине.

  1. В конструкторе рабочих процессов для триггера Сетки событий Azure выберите Новый шаг.

    Screenshot that shows the workflow designer with

  2. В разделе Выберите действие введите фильтр condition в поле поиска. В списке действий выберите действие Условие.

    Screenshot that shows the workflow designer with

    Конструктор рабочих процессов добавляет пустое условие в рабочий процесс, включая пути действий для выполнения согласно значениям условия True и False.

    Screenshot that shows the workflow designer with an empty condition added to the workflow.

  3. Измените заголовок условия на If a virtual machine in your resource group has changed. В строке заголовка условия нажмите кнопку многоточия () и выберите Переименовать.

    Screenshot that shows the workflow designer with the condition editor's context menu and

  4. Создайте условие, которое проверяет событие body на наличие объекта data, у которого свойство operationName соответствует операции Microsoft.Compute/virtualMachines/write. Узнайте больше о схеме событий службы "Сетка событий Azure".

    1. В первой строке щелкните внутри левого поля под элементом И. Когда отобразится список динамического содержимого, выберите Выражение.

      Screenshot that shows the workflow designer with the condition action and dynamic content list open with

    2. В редакторе выражений введите это выражение, которое возвращает имя операции из триггера, а затем нажмите кнопку ОК:

      triggerBody()?['data']['operationName']

      Например:

      Screenshot showing workflow designer and condition editor with expression to extract the operation name.

    3. В среднем поле укажите для оператора значение равно.

    4. В поле справа укажите операцию, которую требуется отслеживать. В этом примере будет использоваться следующее значение:

      Microsoft.Compute/virtualMachines/write

    По завершении условие будет выглядеть следующим образом:

    Screenshot that shows the workflow designer with a condition that compares the operation.

    При переключении из представления конструктора в представление кода и обратно выражение, указанное в условии, преобразуется в токен data.operationName:

    Screenshot that shows the workflow designer with a condition that has resolved tokens.

  5. Сохраните приложение логики

Отправка уведомлений по электронной почте

Теперь добавьте действие, чтобы вы могли получать электронное сообщение, когда заданное условие имеет значение true.

  1. В поле условия Если значение true щелкните Добавить действие.

    Screenshot that shows the workflow designer with the condition's

  2. В разделе Выберите действие введите фильтр send an email в поле поиска. Найдите и выберите соединитель, соответствующий поставщику услуг электронной почты. Затем выберите действие "отправить сообщение" для соединителя. Например:

    • Если у вас рабочая или учебная учетная запись, то выберите соединитель Office 365 Outlook.

    • Для личных учетных записей Майкрософт выберите соединитель Outlook.com.

    • Для учетных записей Gmail выберите соединитель Gmail.

    В рамках этого руководства используется соединитель Office 365 Outlook. Если вы используете другой поставщик, то действия будут аналогичными, но пользовательский интерфейс может немного отличаться.

    Screenshot that shows the workflow designer with the search box open to find the

  3. Если у вас уже есть подключение к поставщику электронной почты, войдите в соответствующую учетную запись при появлении запроса на проверку подлинности.

  4. Измените имя действия отправки письма на следующее: Send email when virtual machine updated.

  5. Введите данные электронной почты, как показано в указанной ниже таблице:

    Screenshot that shows the workflow designer with dynamic content being addded to email subject line for a true condition.

    Совет

    Чтобы выбрать выходные данные предыдущих шагов в рабочем процессе, щелкните в поле ввода, чтобы открыть список динамического содержимого, или выберите Добавить динамическое содержимое. Выберите Дополнительно для каждого раздела в списке, чтобы отобразить дополнительные результаты. Чтобы закрыть список динамического содержимого, снова выберите Добавить динамическое содержимое.

    Свойство Обязательное поле значение Описание
    Задача Да <получатель@домен> Введите электронный адрес получателя. Для тестировании можете использовать свой собственный адрес.
    Тема Да Resource updated:Тема Введите содержимое темы электронного сообщения. В рамках этого руководства введите указанный текст и выберите поле события Тема. Здесь тема электронного сообщения содержит имя обновленного ресурса (виртуальная машина).
    Текст Да Resource:Раздел

    Event type:Тип события

    Event ID:ИД

    Time:Время события

    Введите содержимое текста сообщения электронной почты. Для этого учебника введите указанный текст и выберите поля Раздел, Тип события, Идентификатор и Время события, чтобы электронное сообщение содержало ресурс, запустивший событие, тип, метку времени и идентификатор события для обновления. В рамках этого учебника ресурсом является группа ресурсов Azure, выбранная в триггере.

    Чтобы добавить пустые строки в содержимое, нажмите Shift + ВВОД.

    Примечание.

    Если выбрать поле, которое представляет массив, конструктор автоматически добавит цикл For each для действия, которое ссылается на массив. Таким образом рабочий процесс приложения логики будет выполнять это действие для каждого элемента массива.

    Теперь действие отправки электронного сообщения может выглядеть следующим образом.

    Screenshot that shows the workflow designer with selected outputs to send in email when VM is updated.

    Готовый рабочий процесс приложения логики может выглядеть следующим образом:

    Screenshot showing designer with complete workflow and details for trigger and actions.

  6. Сохраните приложение логики Чтобы свернуть и скрыть сведения о каждом действии в приложении логики, выберите заголовок окна действия.

    Теперь приложение логики активно, но ожидает изменений в виртуальной машине, прежде чем что-либо выполнить. Чтобы проверить рабочий процесс, перейдите следующему разделу.

Проверка рабочего процесса приложения логики

  1. Чтобы проверить, получает ли рабочий процесс указанные события, обновите виртуальную машину.

    Например, можно изменить размер виртуальной машины.

    Через несколько секунд вы должны получить электронное сообщение. Например:

    Screenshot of example Outlook email, showing details about VM update.

  2. Чтобы просмотреть журнал триггера и выполнения приложения логики, в меню приложения выберите Обзор. Чтобы просмотреть дополнительные сведения о выполнении, выберите строку для этого выполнения.

    Screenshot of logic app's overview page, showing a successful run selected.

  3. Чтобы просмотреть входные и выходные данные каждого действия, разверните действие, которое необходимо просмотреть. Эти сведения помогут вам диагностировать и устранить проблемы в приложении логики.

    Screenshot of logic app's runs history, showing details for each run.

Поздравляем! Вы создали и запустили рабочий процесс приложения логики, который отслеживает события ресурса с помощью службы "Сетка событий Azure" и отправляет вам электронные сообщения при возникновении этих событий. Вы также узнали, как можно легко создать рабочие процессы, позволяющие автоматизировать и интегрировать системы и облачные службы.

Можно отслеживать другие изменения в конфигурации с помощью сеток событий и приложений логики, например:

  • виртуальная машина получает права доступа Azure RBAC (управление доступом на основе ролей в Azure);
  • вносятся изменения в группу безопасности сети (NSG) сетевого интерфейса;
  • добавляются или удаляются диски виртуальной машины;
  • сетевому адаптеру виртуальной машины назначается общедоступный IP-адрес.

Очистка ресурсов

В этом руководстве используются ресурсы и выполняются действия, подлежащие оплате по подписке Azure. Завершив проверку и работу с руководством, обязательно отключите или удалите все ресурсы, за использование которых не имеете намерения платить.

  • Чтобы остановить выполнение рабочего процесса, не удаляя данные, отключите приложение. В меню приложения логики выберите Обзор. На панели инструментов нажмите кнопку Отключить.

    Screenshot of logic app's overview, showing Disable button selected to disable the logic app.

    Совет

    Если меню приложения логики не отображается, попробуйте вернуться к панели мониторинга Azure и повторно откройте приложение логики.

  • Чтобы удалить приложение логики без возможности восстановления, в меню приложения логики выберите Обзор. На панели инструментов нажмите кнопку удалить. Подтвердите удаление приложения логики и выберите Удалить.

Следующие шаги

Чтобы узнать, как публиковать события в Сетке событий Azure и получать события из нее с использованием разных языков программирования, ознакомьтесь с приведенными ниже примерами.