Учебник. Отправка уведомлений электронной почты о событиях в Центре Интернета вещей Azure с помощью Сетки событий и Logic Apps

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

В этой статье рассматривается пример конфигурации, в котором используется Центр Интернета вещей и Сетка событий. По завершении работы с этим учебником у вас будет приложение логики Azure, настроенное на отправку уведомлений электронной почты при каждом подключении устройства к центру Интернета вещей или отключении от него. Сетку событий можно использовать для своевременного получения уведомлений о том, что критические устройства отключаются. Отображение метрик и диагностики в журналах или оповещениях может занять несколько минут (например, 20 минут или более). Длительное время обработки может оказаться неприемлемым для критической инфраструктуры.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

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

  • Учетная запись электронной почты любого поставщика услуг электронной почты, поддерживаемого Azure Logic Apps, например Office 365 Outlook или Outlook.com. Такая учетная запись используется для отправки уведомлений о событиях.
  • Используйте среду Bash в Azure Cloud Shell. Дополнительные сведения см . в кратком руководстве по Bash в Azure Cloud Shell.

  • Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

Создание Центра Интернета вещей

Вы можете быстро создать центр Интернета вещей с помощью терминала Azure Cloud Shell на портале.

  1. Войдите на портал Azure.

  2. В правом верхнем углу страницы нажмите кнопку Cloud Shell.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Выполните следующую команду, чтобы создать новую группу ресурсов:

    az group create --name {your resource group name} --location westus
    
  4. Выполните следующую команду, чтобы создать центр Интернета вещей:

    az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1 
    
  5. Сверните терминал Cloud Shell. Вы вернетесь к оболочке позже при прохождении этого учебника.

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

Затем создайте приложение логики и добавьте триггер сетки событий HTTP, который обрабатывает запросы из центра Интернета вещей.

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

  1. На портале Azure выберите Создать ресурс, а затем в поле поиска введите "приложение логики" и нажмите клавишу ВВОД. Выберите Приложение логикив списке результатов.

    Screenshot of how to select the logic app from a list of resources.

  2. На следующем экране выберите Создать.

  3. Присвойте уникальное в вашей подписке имя приложению логики и выберите ту же подписку, группу ресурсов и расположение, которые используются для Центра Интернета вещей. Выберите тип плана Потребление.

    Screenshot of how to configure your logic app.

  4. Выберите Review + create (Просмотреть и создать).

  5. Проверьте параметры и нажмите кнопку Создать.

  6. Создав новый ресурс, выберите Перейти к ресурсу.

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

    Screenshot of the Logic App Designer templates.

Выбор триггера

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

  1. На панели поиска триггеров и соединителей введите HTTP.

  2. Прокрутите результаты и выберите в качестве триггера вариант Запрос — при получении HTTP-запроса.

    Select HTTP request trigger

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

    Use sample payload

  4. Скопируйте json и замените значения заполнителей <> собственными значениями.

  5. Вставьте в текстовое поле JSON-файл схемы события подключения устройства, а затем нажмите Готово.

      [{  
       "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
       "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>",
       "subject": "devices/LogicAppTestDevice",
       "eventType": "Microsoft.Devices.DeviceConnected",
       "eventTime": "2018-06-02T19:17:44.4383997Z",
       "data": {
           "deviceConnectionStateEventInfo": {
             "sequenceNumber":
               "000000000000000001D4132452F67CE200000002000000000000000000000001"
           },
         "hubName": "<hub name>",
         "deviceId": "LogicAppTestDevice",
         "moduleId" : "DeviceModuleID"
       }, 
       "dataVersion": "1",
       "metadataVersion": "1"
     }]
    

    Важно!

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

    Это событие публикуется при подключении устройства к центру Интернета вещей.

Примечание.

Вы можете получить всплывающее уведомление с текстом: Не забудьте включить заголовок Content-Type со значением application/json в запросе. Вы можете спокойно проигнорировать это сообщение и перейти к следующему разделу.

Создание действия

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

  1. Выберите Создать шаг. Откроется окно с предложением выбрать действие.

  2. Найдите Outlook.

  3. Найдите и выберите соединитель, соответствующий поставщику услуг электронной почты. В этом руководстве используется Outlook.com. Шаги для других поставщиков услуг электронной почты схожи. Кроме того, используйте Office 365 Outlook, чтобы пропустить шаг входа.

    Select email provider connector

  4. Выберите действие Отправить сообщение электронной почты (V2).

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

  6. Создайте шаблон сообщения электронной почты.

    • Кому: введите адрес электронной почты для получения электронных уведомлений. В этом уроке используйте учетную запись электронной почты, к которой у вас есть доступ для тестирования.

    • Тема: заполните текст темы. Если щелкнуть текстовое поле "Тема", можно выбрать динамическое содержимое для включения. Например, в этом учебнике используется IoT Hub alert: {eventType}. Если представление Динамическое содержимое не отображается, выберите гиперссылку Добавить динамическое содержимое, чтобы включить или отключить представление Динамическое содержимое.

    После выбора eventType отобразятся выходные данные формы электронной почты. Нажмите Отправить и отправить по эл. почте (V2), чтобы изменить текст сообщения.

    Screenshot of the condensed body output form.

    • Текст: напишите текст сообщения электронной почты. Выберите свойства JSON в средстве выбора, чтобы включить динамическое содержимое на основе данных событий. Если динамическое содержимое не отображается, нажмите гиперссылку Добавить динамическое содержимое ниже поля Текст. Если нужные поля не отображаются, нажмите кнопку Дополнительно на экране динамического содержимого, чтобы включить поля из предыдущего действия.

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

    Screenshot of how to create an event email in the template.

  7. В конструкторе Logic Apps выберите Сохранить.

Копирование URL-адреса HTTP

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

  1. Щелкните поле конфигурации триггера При получении HTTP-запроса, чтобы развернуть его.

  2. Скопируйте значение URL-адрес HTTP POST, нажав кнопку копирования рядом с этим параметром.

    Copy the HTTP POST URL

  3. Сохраните этот URL-адрес, чтобы использовать его в следующем разделе.

Настройка подписки на события Центра Интернета вещей

В этом разделе вы настроите Центр Интернета вещей для публикации событий по мере их появления.

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

  2. Выберите События.

    Open the Event Grid details

  3. Выберите Подписка на события.

    Create new event subscription

  4. Создайте подписку на события со следующими значениями:

    1. В разделе СВЕДЕНИЯ О ПОДПИСКЕ НА СОБЫТИЯ:

      1. Укажите имя подписки на события.
      2. Для пункта Схема событий выберите Схема сетки событий.
    2. В разделе СВЕДЕНИЯ О РАЗДЕЛЕ:

      1. Убедитесь, что для типа раздела задано значение Центр Интернета вещей.
      2. Убедитесь, что имя центра Интернета вещей задано в качестве значения поля Исходный ресурс.
      3. Введите имя системного раздела, который будет создан. См. общие сведения о системных разделах.
    3. В разделе ТИПЫ СОБЫТИЙ:

      1. Выберите раскрывающийся список Filter to Event Types (Фильтровать по типам событий).

      2. Снимите флажки Устройство создано и Устройство удалено, в результате чего установленными останутся только флажки Устройство подключено и Устройство отключено.

        select subscription event types

    4. В разделе СВЕДЕНИЯ О КОНЕЧНОЙ ТОЧКЕ:

      1. Выберите веб-перехватчик в качестве типа конечной точки.
      2. Нажмите Выбрать конечную точку, вставьте URL-адрес, скопированный из приложения логики, и подтвердите выбор.

      select endpoint url

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

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

  5. Выберите Создать.

Имитация подключения нового устройства и отправки с него телеметрии

Протестируйте приложение логики, быстро сымитировав подключение устройства с помощью Azure CLI.

  1. Нажмите кнопку Cloud Shell, чтобы снова открыть терминал.

  2. Выполните приведенную ниже команду, чтобы создать удостоверение имитированного устройства:

    az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
    

    Обработка может занять минуту. После создания в консоли отобразится сообщение JSON.

  3. Выполните следующую команду, чтобы имитировать подключение устройства к Центру Интернета вещей и отправку данных телеметрии:

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  4. При подключении имитированного устройства к Центру Интернета вещей вы получите сообщение электронной почты с уведомлением о событии "DeviceConnected".

  5. После завершения имитации вы получите сообщение электронной почты с уведомлением о событии "DeviceDisconnected".

    Screenshot of the email you should receive.

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

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

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

  1. Выберите Группы ресурсов, а затем созданную для этого учебника группу ресурсов.

  2. На панели группы ресурсов выберите Удалить группу ресурсов. Вам будет предложено ввести имя группы ресурсов, после чего его можно будет удалить. Все содержащиеся там ресурсы также будут удалены.

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

Полный список поддерживаемых соединителей для приложения логики см. в статье