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

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

Важно!

IoT Edge 1.4 является поддерживаемым выпуском. Если вы используете более ранний выпуск, см. статью Обновление 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.0. Если образ модуля хранится в приватном реестре контейнеров, добавьте на этой странице учетные данные для доступа к образу.
    • Модуль Marketplace. Модули, размещенные в Azure Marketplace. Для некоторых модулей Marketplace требуется дополнительная настройка, поэтому ознакомьтесь со сведениями о модуле в списке Модули IOT Edge в Azure Marketplace.
    • Модуль Azure Stream Analytics. Для модулей, созданных из рабочей нагрузки Azure Stream Analytics.
  4. Повторите шаги 2–3 для всех дополнительных модулей этого развертывания.

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

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

Screenshot showing how to set the module twin property for layered deployment.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Screenshot showing how to edit custom metrics in a deployment.

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

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

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

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

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

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