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


Свойства двойников модулей агента IoT Edge и центра IoT Edge

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

Внимание

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

Агент IoT Edge и центр IoT Edge — это два модуля, которые составляют среду выполнения IoT Edge. Подробные сведения о зонах ответственности каждого модуля среды выполнения см. в статье Общие сведения о среде выполнения Azure IoT Edge и ее архитектуре.

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

Двойник модуля имеет следующие элементы:

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

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

Требуемые свойства EdgeAgent

Двойник модуля для агента IoT Edge называется $edgeAgent. Он координирует взаимодействие между агентом IoT Edge, выполняющимся на устройстве, и Центром Интернета вещей. Требуемые свойства задаются при применении манифеста развертывания на конкретном устройстве в ходе развертывания на одно устройство или несколько.

Свойство Описание: Обязательное поле
imagePullPolicy Когда вытягивать изображение в OnCreate или Никогда (никогда не может использоваться, если изображение уже находится на устройстве) Да
restartPolicy Когда модуль должен быть перезапущен. Возможные значения: никогда: не перезапускайте модуль, если он не запущен, всегда перезапускать модуль, если не запущен, on-Неработоспособный: перезапустить модуль, если неработоспособен. Неработоспособным является то, что отчеты Docker, основанные на проверке работоспособности, например "Неработоспособная работа контейнера не работает правильно", on-Failed: перезапустить, если произошел сбой. Да
runtime.type Должен быть docker. Да
runtime.settings.minDockerVersion Задает минимальную версию Docker, необходимую для этого манифеста развертывания. Да
runtime.settings.loggingOptions Переведенные в строку JSON, содержащую параметры ведения журнала для контейнера агента IoT Edge. Параметры ведения журнала Docker No
runtime.settings.registryCredentials. {registryId}.username Имя пользователя для реестра контейнеров. Для Реестра контейнеров Azure именем пользователя обычно является имя реестра. Учетные данные реестра необходимы для доступа к любым частным образам модулей. No
runtime.settings.registryCredentials. {registryId}.password Пароль для реестра контейнеров. No
runtime.settings.registryCredentials. {registryId}.address Адрес для реестра контейнеров. Для Реестра контейнеров Azure адрес обычно имеет вид {имя реестра}.azurecr.io. No
schemaVersion Либо 1.0, либо 1.1. Версия 1.1 появилась в IoT Edge версии 1.0.10, и сейчас является рекомендуемой. Да
статус Требуемое состояние модуля: выполнение или остановка. Обязательное поле
systemModules.edgeAgent.type Должен быть docker. Да
systemModules.edgeAgent.startupOrder Целочисленное значение для расположения модуля в порядке запуска. Значение 0 — первое, а максимальное целое число (4294967295) — последнее. Если значение не указано, значение по умолчанию — максимальное целое число. No
systemModules.edgeAgent.settings.image Универсальный код ресурса (URI) образа агента IoT Edge. В настоящее время агент IoT Edge не может обновить себя сам. Да
systemModules.edgeAgent.settings.createOptions Переведенные в строку JSON, содержащую параметры для создания контейнера агента IoT Edge. Параметры создания Docker No
systemModules.edgeAgent.configuration.id Идентификатор развертывания, которое развернуло этот модуль. Центр Интернета вещей задает свойство при применении этого манифеста с помощью развертывания. Не является частью манифеста развертывания.
systemModules.edgeHub.type Должен быть docker. Да
systemModules.edgeHub.status Должен выполняться. Да
systemModules.edgeHub.restartPolicy Всегда должен быть. Да
systemModules.edgeHub.startupOrder Целочисленное значение, обозначающее позицию этого модуля в порядке запуска. Значение 0 — первое, а максимальное целое число (4294967295) — последнее. Если значение не указано, значение по умолчанию — максимальное целое число. No
systemModules.edgeHub.settings.image Универсальный код ресурса (URI) образа центра IoT Edge. Да
systemModules.edgeHub.settings.createOptions Переведенные в строку JSON, содержащую параметры для создания контейнера центра IoT Edge. Параметры создания Docker No
systemModules.edgeHub.configuration.id Идентификатор развертывания, которое развернуло этот модуль. Центр Интернета вещей задает свойство при применении этого манифеста с помощью развертывания. Не является частью манифеста развертывания.
modules.{ИД_модуля}.version Определяемая пользователем строка, представляющая версию этого модуля. Да
modules.{ИД_модуля}.type Должен быть docker. Да
modules.{Ид_модуля}.status {запущено | остановлено} Да
modules.{ИД_модуля}.restartPolicy {никогда не | всегда} Да
modules.{moduleId}.startupOrder Целочисленное значение для расположения модуля в порядке запуска. Значение 0 — первое, а максимальное целое число (4294967295) — последнее. Если значение не указано, значение по умолчанию — максимальное целое число. No
modules.{moduleId}.imagePullPolicy {on-create | никогда} No
modules.{moduleId}.env Список переменных среды для передачи в модуль. Принимает формат "<name>": {"value": "<value>"}. No
modules.{ИД_модуля}.settings.image Универсальный код ресурса (URI) для образа модуля. Да
modules.{ИД_модуля}.settings.createOptions Переведенные в строку JSON, содержащую параметры для создания контейнера модуля. Параметры создания Docker No
modules.{ИД_модуля}.configuration.id Идентификатор развертывания, которое развернуло этот модуль. Центр Интернета вещей задает свойство при применении этого манифеста с помощью развертывания. Не является частью манифеста развертывания.
версия Текущая итерация с версией, фиксацией и сборкой. No

Отображаемые в отчете свойства EdgeAgent

Сообщаемые свойства агента IoT Edge включают в себя три основных элемента информации:

  1. состояние применения последних требуемых свойств;
  2. состояние модулей, запущенных на устройстве, зарегистрированное агентом IoT Edge;
  3. копия требуемых свойств, выполняемых в данное время на устройстве.

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

Примечание.

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

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

Свойство Description
lastDesiredStatus.code Этот код состояния обозначает последние требуемые свойства, известные агенту IoT Edge. Допустимые значения: 200 success, Invalid configuration, 412 400 Invalid schema version, 417 Desired properties are empty, 500 Failed.
lastDesiredStatus.description Текстовое описание состояния.
lastDesiredVersion Это целое число относится к последней версии требуемых свойств, обрабатываемых агентом IoT Edge.
runtime.platform.OS Сообщает об операционной системе на устройстве.
runtime.platform.architecture Сообщает об архитектуре ЦП на устройстве.
schemaVersion Версия схемы сообщаемых свойств.
systemModules.edgeAgent.runtimeStatus Сообщаемое состояние агента IoT Edge: {выполняющаяся | неработоспособная}.
systemModules.edgeAgent.statusDescription Текстовое описание сообщаемого состояния агента IoT Edge.
systemModules.edgeAgent.exitCode Код выхода, сообщаемый контейнером агента IoT Edge, если контейнер завершает работу.
systemModules.edgeAgent.lastStartTimeUtc Время последнего запуска агента IoT Edge.
systemModules.edgeAgent.lastExitTimeUtc Время последнего выхода агента IoT Edge.
systemModules.edgeHub.runtimeStatus Состояние центра IoT Edge: { выполнение | остановлено | отработки отказа неработоспособно | | }.
systemModules.edgeHub.statusDescription Текстовое описание состояния центра IoT Edge, если оно неработоспособно.
systemModules.edgeHub.exitCode Код выхода, сообщаемый контейнером Центра IoT Edge, если контейнер завершает работу.
systemModules.edgeHub.lastStartTimeUtc Время последнего запуска центра IoT Edge.
systemModules.edgeHub.lastExitTimeUtc Время последнего выхода центра IoT Edge.
systemModules.edgeHub.lastRestartTimeUtc Время последнего перезапуска центра IoT Edge.
systemModules.edgeHub.restartCount Количество раз, когда этот модуль был перезагружен в рамках политики перезапуска.
modules.{ИД_модуля}.runtimeStatus Состояние модуля: { выполнение | остановлено | отработки отказа неработоспособно | | }.
modules.{ИД_модуля}.statusDescription Текстовое описание состояния модуля, если оно неработоспособно.
modules.{ИД_модуля}.exitCode Код выхода, сообщаемый контейнером модуля, если контейнер завершает работу.
Модули. {moduleId}.lastStartTimeUtc Время последнего запуска модуля.
modules.{ИД_модуля}.lastExitTimeUtc Время последнего выхода модуля.
modules.{ИД_модуля}.lastRestartTimeUtc Время последнего перезапуска модуля.
modules.{ИД_модуля}.restartCount Количество раз, когда этот модуль был перезагружен в рамках политики перезапуска.
версия Версия образа. Пример: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971ca0af0fc39d2c1f91aef21e95bd0c03c" }.

Требуемые свойства EdgeHub

Двойник модуля центра IoT Edge называется $edgeHub. Он координирует взаимодействие между центром IoT Edge, выполняющимся на устройстве, и Центром Интернета вещей. Требуемые свойства задаются при применении манифеста развертывания на конкретном устройстве в ходе развертывания на одно устройство или несколько.

Свойство Description Требуется в манифесте развертывания
schemaVersion Либо 1.0, либо 1.1. Версия 1.1 появилась в IoT Edge версии 1.0.10, и сейчас является рекомендуемой. Да
routes.{имя_маршрута} Строка, представляющая маршрут центра IoT Edge. Дополнительные сведения см. в разделе Объявление маршрутов. Элемент routes может присутствовать, но быть пустым.
storeAndForwardConfiguration.timeToLiveSecs Время устройства в секундах, которое центр IoT Edge сохраняет сообщения, если они отключены от конечных точек маршрутизации, будь то Центр Интернета вещей или локальный модуль. На этот раз сохраняется при любых выключениях или перезапусках. Дополнительные сведения см. в статье Возможности автономной работы. Да

Отображаемые в отчете свойства EdgeHub

Свойство Description
lastDesiredVersion Это целое число относится к последней версии требуемых свойств, обрабатываемых центром IoT Edge.
lastDesiredStatus.code Это код состояния, ссылающийся на последние требуемые свойства, известные центру IoT Edge. Допустимые значения: 200 — успех, 400 — недопустимая конфигурация, 500 — сбой.
lastDesiredStatus.description Текстовое описание состояния.
клиенты Все клиенты, подключенные к edgeHub, с состоянием и временем последнего подключения. Пример: "клиенты": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
clients.{идентификатор устройства или модуля}.status Состояние подключения этого устройства или модуля. Возможные значения {подключено | отключено}. В отключенном состоянии могут находиться только удостоверения модуля. Подчиненные устройства, подключающиеся к центру IoT Edge, отображаются только при подключении.
clients.{идентификатор устройства или модуля}.lastConnectTime Время последнего подключения модуля или устройства.
clients.{идентификатор устройства или модуля}.lastDisconnectTime Время последнего отключения модуля или устройства.
schemaVersion Версия схемы сообщаемых свойств.
версия Версия образа. Пример: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971ca0af0fc39d2c1f91aef21e95bd0c03c" }.

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

Сведения о том, как использовать эти свойства для создания манифестов развертывания, см. в статье Сведения об использовании, настройке и повторном использовании модулей Azure IoT Edge (предварительная версия).