Поделиться через


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

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

Внимание

IoT Edge 1.5 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 на само устройство. Обработка потоков телеметрии на краю уменьшает объем отправленных данных и время, необходимое для реагирования на полезные аналитические сведения. Azure IoT Edge и Azure Stream Analytics интегрируются для упрощения разработки рабочих процессов.

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

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

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

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

    Используйте виртуальную машину Azure в качестве устройства IoT Edge, выполнив действия, описанные в кратком руководстве по устройствам 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 в строке поиска, чтобы найти его в Azure 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 Hub из раскрывающегося списка.

    Если вы не видите в списке параметр Edge Hub , возможно, вы создали задание 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.

    Имя. значение
    телеметрияВОблако FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    уведомленияНаОблако FROM /messages/modules/{moduleName}/* INTO $upstream
    оповещения для сброса 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 Stream Analytics для анализа данных с устройства IoT Edge. Вы загрузили модуль Azure Stream Analytics на устройстве IoT Edge для обработки и реагирования на увеличение температуры локально и отправили агрегированный поток данных в облако. Чтобы узнать, как Azure IoT Edge поможет вам создать дополнительные решения, ознакомьтесь со следующим руководством.