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


Развертывание и мониторинг большого числа модулей IoT Edge с помощью портала Azure

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

Внимание

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

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

Дополнительные сведения см. в статье Общие сведения об автоматических развертываниях IoT Edge для отдельных устройств или в большом масштабе.

Определение устройств с помощью тегов

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

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

"tags":{
  "location":{
    "building": "20",
    "floor": "2"
  },
  "roomtype": "conference",
  "environment": "prod"
}

Дополнительные сведения о двойниках устройств и тегах см. в статье Общие сведения о двойниках устройств и их использование в Центре Интернета вещей.

Создание развертывания

IoT Edge предоставляет два различных типа автоматических развертываний, которые можно использовать для настройки сценария. Вы можете создать стандартное развертывание, которое включает в себя модули среды выполнения системы и любые другие модули и маршруты. Каждое устройство может применять только одно развертывание. Также можно создать многоуровневое развертывание, которое включает в себя только пользовательские модули и маршруты, а не системную среду выполнения. Многие многоуровневые развертывания можно объединять на устройстве на основе стандартного развертывания. Дополнительные сведения о совместной работе двух типов автоматических развертываний см. в статье Автоматическое развертывание IOT Edge для отдельных устройств или в широком масштабе.

Действия по созданию развертывания и многоуровневого развертывания аналогичны. Все различия заключаются в следующих шагах.

  1. Найдите нужный Центр Интернета вещей на портале Azure.
  2. В меню ресурсов в левой области выберите "Конфигурации и развертывания" в разделе "Управление устройствами".
  3. На командной панели выберите "Добавить">"Развертывание" или "Многоуровневое развертывание".

Процедура создания развертывания состоит из пяти шагов. В следующих разделах описан каждый из этих шагов.

Примечание.

Действия, описанные в этой статье, соответствуют последней версии схемы агента и центра IoT Edge.

Если вы развертываете на устройстве с версией 1.0.9 или более ранней, измените Настройки среды выполнения на шаге Модули мастера, чтобы использовать схему версии 1.0.

Шаг 1. Имя и метка

  1. Присвойте своему развертыванию уникальное имя, содержащее до 128 букв в нижнем регистре. Не используйте пробелы и следующие недопустимые символы: & ^ [ ] { } \ | " < > /.
  2. Вы можете добавить метки в виде пар "ключ —значение" для отслеживания развертываний. Например, HostPlatform и Linux или Версия и 3.0.1.
  3. Выберите Далее: модули, чтобы перейти к шагу два.

Шаг 2. Модули

В развертывание можно добавить до 50 модулей. При создании развертывания без модулей с целевых устройств будут удалены все текущие модули.

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

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

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

  2. В разделе Модули IoT Edge на этой странице выберите Добавить.

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

    • Модуль IoT Edge. Предоставляется имя модуля и URI образа контейнера. Например, URI образа для примера модуля SimulatedTemperatureSensor представляет собой mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5. Список образов модулей Microsoft IoT Edge см. в Реестр артефактов Microsoft.
    • Модуль Azure Stream Analytics. Для модулей, созданных из рабочей нагрузки Azure Stream Analytics.
  4. При необходимости повторите шаги 2 и 3, чтобы добавить в развертывание дополнительные модули.

После добавления модуля в развертывание можно выбрать его имя, чтобы открыть страницу Обновление модуля IOT Edge. На этой странице можно изменить параметры модуля, переменные среды, параметры создания, порядок запуска и двойник модуля. Если вы добавили модуль из Marketplace, возможно, у него уже есть некоторые из этих параметров. Дополнительные сведения о доступных параметрах модуля см. в разделе Настройка модуля и управление им.

Если вы создаете многоуровневое развертывание, вы можете настроить модуль, который существует в других развертываниях, предназначенных для одних и того же устройства. Чтобы обновить двойник модуля без перезаписи других версий, откройте вкладку Параметры двойника модуля. Создайте новое свойство двойника модуля с уникальным именем для подраздела в нужных свойствах модуля двойника, например properties.desired.settings. Если вы определяете свойства только в properties.desired поле, он перезаписывает необходимые свойства для модуля, определенного в любых развертываниях с более низким приоритетом.

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

Более подробные сведения о настройке двойников модулей в многоуровневых развертываниях можно найти в разделе Многоуровневое развертывание.

Настроив все модули для развертывания, нажмите кнопку Далее, чтобы перейти к шагу 3.

Шаг 3. Маршруты

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

Например, маршрут с маршрутом имени и значением FROM /messages/* INTO $upstream будет принимать сообщения, выходные любым модулем, и отправлять их в центр Интернета вещей.

Параметры Приоритет и Срок жизни — необязательные параметры, которые можно включить в определение маршрута. Параметр "Приоритет" позволяет выбрать маршруты, которые должны обрабатываться в первую очередь, или маршруты, которые должны быть обработаны последними. Приоритет определяется присвоением значения в пределах 0–9, где 0 — наивысший приоритет. Параметр "Срок жизни" позволяет объявлять, как долго должны удерживаться сообщения в этом маршруте, пока не будут обработаны или удалены из очереди.

Дополнительные сведения о создании маршрутов см. в разделе Объявление маршрутов.

Выберите Далее: целевые устройства.

Шаг 4. Назначение устройств

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

Так как несколько развертываний могут предназначаться для одного устройства, каждому развертыванию необходимо присвоить номер приоритета. Если возникает конфликт, предпочтение отдается развертыванию с наивысшим приоритетом (с более высоким значением параметра приоритета). Когда оба развертывания имеют одинаковый номер приоритета, побеждает то, которое было создано недавно.

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

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

  1. Введите положительное целое число для приоритета развертывания.
  2. Введите целевое условие , чтобы определить, какие устройства предназначены для этого развертывания. Условие основано на тегах двойника устройства или его сообщаемых свойствах и должно соответствовать формату выражения. Например, tags.environment='test' или properties.reported.devicemodel='4000x'.

Выберите Далее: метрики.

Шаг 5. Метрики

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

  1. Введите имя для параметра Имя метрики.

  2. Введите запрос для параметра Metric Criteria (Критерии метрики). Запрос основан на переданных свойствах двойников модуля центра IoT Edge. Метрика представляет количество строк, возвращаемых запросом.

    Например:

    SELECT deviceId FROM devices
      WHERE properties.reported.lastDesiredStatus.code = 200
    

Нажмите кнопку "Далее": просмотр и создание , чтобы перейти к последнему шагу.

Шаг 6. Просмотр и создание

Просмотрите сведения о развертывании, а затем нажмите Создать.

Сведения о мониторинге развертывания см. в статье Мониторинг развертывания IoT Edge.

Примечание.

При создании нового развертывания IoT Edge иногда может потребоваться до 5 минут, чтобы центр Интернета вещей обрабатывал новую конфигурацию и распространял новые нужные свойства на целевые устройства.

Изменение развертывания

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

  • Целевые условия
  • Пользовательские метрики
  • Наклейки
  • Теги
  • Требуемые свойства

Изменение целевых условий, пользовательских метрик и меток

  1. В Центре Интернета вещей выберите "Конфигурации и развертывания " в разделе **Управление устройствами ** в меню ресурсов.

  2. Выберите развертывание, которое требуется настроить.

  3. Перейдите на вкладку "Целевые устройства". Измените целевое условие для целевых устройств. Можно также откорректировать Приоритет.

    Если обновить целевое условие, произойдут следующие обновления:

    • Если устройство не соответствует предыдущему условию назначения, однако соответствует новому и это развертывание имеет самый высокий приоритет для устройства, то оно будет применено к устройству.
    • Если устройство, на котором сейчас выполняется развертывание, больше не соответствует условию назначения, оно удаляет это развертывание и выполняет следующее развертывание с самым высоким приоритетом.
    • Если устройство, на котором сейчас выполняется развертывание, больше не соответствует условию назначения, а также условию назначения любого другого развертывания, в устройстве не происходит никаких изменений. Устройство продолжает работать с текущими модулями в текущем состоянии, но больше не управляется в рамках этого развертывания. Если устройство соответствует условию назначения любого другого развертывания, оно удаляет это развертывание и выполняет новое.
  4. Выберите вкладку "Метрики" и добавьте или измените пользовательские метрики, используя пример синтаксиса в качестве руководства. Выберите Сохранить.

    Снимок экрана: изменение пользовательских метрик в развертывании.

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

Удаление развертывания

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

  1. Войдите на портал Azure и перейдите к своему Центру Интернета вещей.
  2. В меню ресурсов выберите "Конфигурации и развертывания" в разделе "Управление устройствами".
  3. Установите флажок, чтобы выбрать развертывание, которое необходимо удалить.
  4. Выберите "Удалить" на панели команд.
  5. Запрос сообщает, что это действие удаляет это развертывание и возвращает предыдущее состояние для всех устройств. Развертывание с более низким приоритетом вступает в силу. Если другое развертывание не предназначено, модули не удаляются. Чтобы удалить все модули из устройства, создайте развертывание без модулей и разверните его на этом устройстве. Выберите Да для продолжения.

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

Дополнительные сведения о развертывании модулей на устройствах IoT Edge см. в статье "Общие сведения о автоматическом развертывании IoT Edge" для отдельных устройств или в большом масштабе.