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

Снимок экрана: конструктор рабочих процессов с рабочим процессом, который отслеживает виртуальную машину с помощью службы

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

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

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

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

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

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

    Снимок экрана портала Azure, отображающий кнопку для создания ресурса приложения логики.

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

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

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

    Примечание.

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

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

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

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

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

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

    Примечание.

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

    Снимок экрана: шаблоны Azure Logic Apps с выбранным шаблоном

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

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

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

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

    Снимок экрана: конструктор рабочих процессов с выбранным триггером Сетка событий Azure.

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

    Снимок экрана: конструктор рабочих процессов с запросом на вход Azure для подключения к Сетка событий Azure.

    Примечание.

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

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

    Снимок экрана: конструктор рабочих процессов с открытым редактором информации триггера.

    Свойство Обязательное поле значение Описание
    Подписка Да <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. Сохраните рабочий процесс приложения логики. На панели инструментов конструктора выберите Сохранить. Чтобы свернуть и скрыть сведения о действии в рабочем процессе, выберите заголовок окна действия.

    Снимок экрана: конструктор рабочих процессов с выбранной кнопкой

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

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

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

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

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

    Снимок экрана: конструктор рабочих процессов с выбранным элементом

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

    Снимок экрана: конструктор рабочих процессов с выбранным элементом

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

    Снимок экрана: конструктор рабочих процессов с пустым условием, добавленным в рабочий процесс.

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

    Снимок экрана: конструктор рабочих процессов с контекстным меню редактора условия и выбранным элементом

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

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

      Снимок экрана: конструктор рабочих процессов с действием условия и открытым списком динамического содержимого и выбранным элементом

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

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

      Например:

      Снимок экрана: конструктор рабочих процессов и редактор условий с выражением для извлечения имени операции.

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

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

      Microsoft.Compute/virtualMachines/write

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

    Снимок экрана: конструктор рабочих процессов с условием, которое сравнивает операцию.

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

    Снимок экрана: конструктор рабочих процессов с условием, которое содержит устраненные токены.

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

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

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

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

    Снимок экрана: конструктор рабочих процессов с открытой панелью

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

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

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

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

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

    Снимок экрана: конструктор рабочих процессов с открытым полем поиска для поиска действия

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

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

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

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

    Совет

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

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

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

    Event ID: Идентификатор

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

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

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

    Примечание.

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

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

    Снимок экрана: конструктор рабочих процессов с выбранными результатами для отправки по электронной почте при обновлении виртуальной машины.

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

    Снимок экрана: конструктор с полным рабочим процессом и сведениями о триггерах и действиях.

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

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

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

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

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

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

    Снимок экрана с примером письма Outlook, в котором отображаются сведения об обновлении виртуальной машины.

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

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

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

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

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

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

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

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

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

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

    Снимок экрана обзора приложения логики, показывающий выбор кнопки

    Совет

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

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

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

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