Руководство по развертыванию Azure Stream Analytics в качестве модуля IoT Edge

Область применения:IoT Edge 1.5 проверка mark IoT Edge 1.5 IoT Edge 1.4 проверка mark IoT Edge 1.4

Внимание

Поддерживаются выпуски IoT Edge 1.5 LTS и IoT Edge 1.4 LTS. IoT Edge 1.4 LTS заканчивается жизнью 12 ноября 2024 года. Если вы используете более ранний выпуск, см. статью Обновление IoT Edge.

В этом руководстве вы создадите задание Azure Stream Analytics в портал Azure, а затем развернете его как модуль IoT Edge без дополнительного кода.

Узнайте следующие темы:

  • Создание задания Azure Stream Analytics для обработки пограничных данных.
  • Подключение нового задания Azure Stream Analytics с другими модулями IoT Edge.
  • Развертывание задания Azure Stream Analytics на устройстве IoT Edge с портала Azure.

Схема архитектуры потоков, показывающая промежуточное и развертывание задания Azure Stream Analytics.

В этом руководстве модуль Stream Analytics вычисляет среднюю температуру в течение скользящего 30-секундного окна. Когда это значение достигает 70, модуль отправляет предупреждение, чтобы устройство выполнило действие. В этом случае действие заключается в сбросе имитируемого датчика температуры. В рабочей среде вы можете использовать эту функцию для выключения компьютера или принятия профилактических мер, когда температура достигает опасных уровней.

Зачем использовать Azure Stream Analytics в IoT Edge?

Многие решения Интернета вещей используют службы аналитики, чтобы получать аналитические сведения о данных по мере того, как они попадают в облако с устройств Интернета вещей. С помощью Azure IoT Edge можно переместить логику Azure Stream Analytics на само устройство. Обрабатывая потоки данных телеметрии в Edge, можно сократить объем отправленных данных и время, необходимое для реагирования на полезные аналитические сведения. Azure IoT Edge и Azure Stream Analytics интегрированы для упрощения разработки рабочей нагрузки.

Azure Stream Analytics предоставляет расширенный синтаксис структурированных запросов для анализа данных как в облаке, так и на устройствах IoT Edge. Дополнительные сведения см. в документации по Azure Stream Analytics.

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

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

  • Устройство Azure IoT Edge.

    В качестве устройства IoT Edge можно использовать виртуальную машину Azure. Для этого выполните действия, описанные в кратком руководстве для устройства Linux или Windows.

  • Центр Интернета вещей ценовой категории "Бесплатный" или "Стандартный" в Azure.

Создание задания Azure Stream Analytics

В этом разделе описано, как создать задание Azure Stream Analytics, которое выполняет следующие действия.

  • получение данных с устройства IoT Edge;
  • запрос значений, выходящих за пределы заданного диапазона, из данных телеметрии;
  • выполнение действий на устройстве IoT Edge на основе результатов запроса.

Создание учетной записи хранилища

Когда вы создаете задание Azure Stream Analytics для запуска на устройстве IoT Edge, его необходимо сохранить таким образом, чтобы его можно было вызывать с устройства. Вы можете использовать имеющуюся учетную запись хранения Azure или создать новую.

  1. На портале Azure последовательно выберите Создать ресурс>Хранилище>Учетная запись хранения.

  2. Чтобы создать учетную запись хранения, введите следующие значения:

    Поле значение
    Отток подписок Выберите ту же подписку, к которой относится Центр Интернета вещей.
    Группа ресурсов Мы рекомендуем использовать одну группу ресурсов для всех тестовых ресурсов для кратких руководств и учебников по IoT Edge. Например, IoTEdgeResources.
    Имя. Введите уникальное имя учетной записи хранения.
    Расположение Выберите расположение рядом с вами.
  3. Для других полей используйте значения по умолчанию и выберите Просмотреть и создать.

  4. Проверьте параметры и щелкните Создать.

Создание задания

  1. В портал Azure выберите:

    1. Создайте ресурс
    2. Интернет вещей из меню слева
    3. Введите Stream Analytics в строке поиска, чтобы найти его в Marketplace
    4. Выберите " Создать", а затем задание Stream Analytics в раскрывающемся меню
  2. Укажите следующие значения, чтобы создать новое задание Stream Analytics:

    Поле Значение
    Имя. Укажите имя задания. Например, IoTEdgeJob.
    Отток подписок Выберите ту же подписку, к которой относится Центр Интернета вещей.
    Группа ресурсов Мы рекомендуем использовать одну и ту же группу ресурсов для всех тестовых ресурсов, создаваемых во время кратких руководств и руководств По IoT Edge. Например, ресурс с именем IoTEdgeResources.
    Область/регион Выберите расположение рядом с вами.
    Среда размещения Выберите Edge. Этот параметр означает, что развертывание переходит на устройство IoT Edge вместо размещения в облаке.
  3. Выберите Review + create (Просмотреть и создать).

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

Настройка задания

После создания задания Stream Analytics в портал Azure его можно настроить с помощью входных данных, выходных данных и запроса для выполнения данных, проходящих через него.

В этом разделе создается задание, которое получает данные температуры от устройства IoT Edge. Он анализирует данные в скользящее 30-секундное окно. Если средняя температура в этом окне превышает 70 градусов, оповещение отправляется на устройство IoT Edge.

Примечание.

При развертывании задания вы указываете, откуда приходят данные и переход к ним в следующем разделе. Настройка параметров IoT Edge.

Настройка входных и выходных данных

  1. Перейдите в задание Stream Analytics на портале Azure.

  2. В разделе топологии задания выберите "Входные данные" и "Добавить входные данные".

  3. В раскрывающемся списке выберите Центр Edge.

    Если в списке отсутствует вариант Центр Edge, возможно, вы создали задание Stream Analytics как размещенное в облаке. Попробуйте создать задание заново и обязательно выберите Edge в качестве среды размещения.

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

  5. Сохраните значения по умолчанию для других полей и нажмите Сохранить.

  6. В разделе Топология задания откройте Выходные данные, а затем выберите Добавить.

  7. В раскрывающемся списке выберите Центр Edge.

  8. На панели Новые выходные данные введите alert как псевдоним выходных данных.

  9. Сохраните значения по умолчанию для других полей и нажмите Сохранить.

Создание запроса

  1. В разделе Топология задания выберите Запрос.

  2. Замените текст по умолчанию следующим запросом.

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    В этом запросе код SQL отправляет команду сброса в выходные данные оповещения, если средняя температура компьютера в 30-секундном окне достигает 70 градусов. Команда сброса была предварительно пропрограммирована в датчик в качестве действия, которое можно предпринять.

  3. Выберите Сохранить запрос.

Настройка параметров IoT Edge

Чтобы подготовить задание Stream Analytics для развертывания на устройстве IoT Edge, необходимо связать задание Azure Stream Analytics с учетной записью хранения. При развертывании задания определение задания экспортируется в учетную запись хранения в виде контейнера.

  1. В службе Stream Analytics в меню Параметры выберите параметры учетной записи служба хранилища.

  2. Выберите параметр Выбрать Хранилище BLOB-объектов/ADLS 2-го поколения из ваших подписок.

  3. Учетная запись хранения Azure автоматически отображается на странице. Если вы не видите его, убедитесь, что вы создаете хранилище. Или если вам нужно выбрать хранилище, отличное от хранилища, указанного в поле учетной записи служба хранилища, выберите его в раскрывающемся меню.

  4. Нажмите кнопку "Сохранить", если необходимо внести какие-либо изменения.

Развертывание задания

Теперь вы готовы развернуть задание Azure Stream Analytics на устройстве IoT Edge.

В этом разделе для создания манифеста развертывания вы используете мастер настройки модулей на портале Azure. Манифест развертывания — это JSON-файл, описывающий все модули, которые развертываются на устройстве. В манифесте также показаны реестры контейнеров, которые хранят образы модулей, как следует управлять модулями и как модули могут взаимодействовать друг с другом. Ваше устройство IoT Edge извлекает манифест развертывания из Центра Интернета вещей, а затем использует информацию в нем для развертывания и настройки всех назначенных ему модулей.

В рамках работы с этим руководством вы развернете два модуля. Первый — это модуль SimulatedTemperatureSensor, имитирующий датчик температуры и влажности. Второй модуль — задание Stream Analytics. Модуль датчика предоставляет поток данных, которые анализирует запрос задания.

  1. Найдите нужный Центр Интернета вещей на портале Azure.

  2. Выберите устройства в меню управления устройствами и выберите устройство IoT Edge, чтобы открыть его.

  3. Щелкните Set modules (Настроить модули).

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

    1. Нажмите кнопку +Добавить и выберите модуль IoT Edge.
    2. В поле имени введите SimulatedTemperatureSensor.
    3. В поле URI изображения введите mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5.
    4. Оставьте другие параметры по умолчанию и нажмите кнопку "Добавить".
  5. Добавьте задание Azure Stream Analytics Edge, выполнив следующие шаги:

    1. Нажмите кнопку +Добавить и выберите модуль Azure Stream Analytics.
    2. Выберите свою подписку и созданное задание Edge Azure Stream Analytics.
    3. Выберите Сохранить.

    Когда вы сохраните изменения, сведения о задании Stream Analytics публикуются в созданном контейнере хранилища.

  6. После завершения развертывания надстройки Stream Analytics убедитесь, что на странице наборов модулей появится два новых модуля.

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

  7. Выберите Review + create (Просмотреть и создать). Появится манифест развертывания.

  8. Нажмите кнопку создания.

  9. На странице "Задать модули" устройства через несколько минут вы увидите модули, перечисленные и запущенные. Обновите страницу, если вы не видите модули или подождите несколько минут, а затем снова обновите ее.

Общие сведения о двух новых модулях

  1. На вкладке "Задать модули " устройства выберите имя модуля Stream Analytics, чтобы открыть страницу "Обновить модуль IoT Edge". Здесь можно обновить параметры.

    На вкладке Параметры есть URI изображения, указывающий на стандартный образ Azure Stream Analytics. Этот один образ используется для каждого модуля Stream Analytics, который развертывается на устройстве IoT Edge.

    На вкладке Параметры двойника модуля отображается код JSON, определяющий свойство Azure Stream Analytics (ASA) с именем ASAJobInfo. Значение этого свойства указывает на определение задания в контейнере хранилища. Это свойство определяет настройку образа Stream Analytics по конкретным параметрам задания.

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

  2. Если вы внесли изменения или отмену, нажмите кнопку "Применить", если вы не внесли никаких изменений.

Назначение маршрутов модулям

  1. На странице ">Задать модули на устройстве:<имя устройства" нажмите кнопку "Далее: маршруты".

  2. На вкладке Маршруты определите способ передачи сообщений между модулями и Центром Интернета вещей. Сообщения создаются с помощью пар имен и значений.

    Добавьте имена и значения маршрутов с парами, показанными в следующей таблице. Замените экземпляры {moduleName} именем модуля Azure Stream Analytics. Этот модуль должен иметь то же имя, которое отображается в списке модулей устройства на странице "Задание модулей", как показано в портал Azure.

    Снимок экрана: имя модулей Stream Analytics на устройстве IoT Edge в портал Azure.

    Имя. Значение
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    Маршруты, объявленные здесь, определяют поток данных через устройство IoT Edge. Данные телеметрии от устройства SimulatedTemperatureSensor направляются в Центр Интернета вещей на вход данных о температуре, который мы настроили для задания Stream Analytics. Выходные сообщения предупреждения отправляются в Центр Интернета вещей и в модуль SimulatedTemperatureSensor для активации команды перезапуска.

  3. По завершении выберите Next: Просмотр + создание.

  4. На вкладке Просмотр + создание можно увидеть, как предоставленные в мастере данные преобразуются в манифест развертывания JSON.

  5. После завершения проверки манифеста нажмите кнопку "Создать ", чтобы завершить настройку модуля.

Просмотреть данные

Теперь вы можете перейти на устройство IoT Edge, чтобы увидеть взаимодействие между модулем Azure Stream Analytics и модулем SimulatedTemperatureSensor.

Примечание.

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

  1. Проверьте выполнение всех модулей в Docker.

    iotedge list  
    
  2. Просмотрите все системные журналы и данные метрик. Замените {moduleName} именем модуля Azure Stream Analytics:

    iotedge logs -f {moduleName}  
    
  3. Узнайте, как команда сброса влияет на МодельTemperatureSensor, просмотрев журналы датчиков:

    iotedge logs SimulatedTemperatureSensor
    

    Вы увидите, что температура компьютера постепенно повышается в течение 30 секунд, пока не достигнет 70 градусов. Затем модуль Stream Analytics активирует сброс, и температура компьютера уменьшается до 21 градуса.

    Снимок экрана: команда сброса в выходных данных из журналов модуля.

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

Если вы планируете перейти к следующей рекомендуемой статье, можно сохранить созданные и повторно используемые ресурсы и конфигурации. Это же устройство IoT Edge также можно использовать в качестве тестового устройства.

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

Удаление ресурсов Azure

Удаление ресурсов и групп ресурсов Azure является необратимым. Будьте внимательны, чтобы случайно не удалить не ту группу ресурсов или не те ресурсы. Если вы создали центр Интернета вещей в группе ресурсов, содержащей ресурсы, которые нужно сохранить, удалите только ресурс Центра Интернета вещей, не удаляя всю группу ресурсов.

Удаление ресурсов:

  1. Войдите на портал Azure и щелкните Группы ресурсов.

  2. Выберите группу ресурсов, содержащую тестовые ресурсы IoT Edge.

  3. Просмотрите список ресурсов, содержащихся в группе ресурсов. Если вы хотите удалить их все, щелкните Удалить группу ресурсов. Если вы хотите удалить только некоторые из них, щелкните нужные ресурсы отдельно.

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

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