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


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

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

Внимание

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

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

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

  • Состояние применения последних установленных желаемых свойств
  • Состояние модулей, работающих на устройстве, как сообщает агент IoT Edge, и
  • Копия требуемых свойств, которые в настоящий момент работают на устройстве.

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

Примечание.

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

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

Свойство Описание:
ПоследнееЖелаемоеСостояние.код Код состояния для последних требуемых свойств, видимых агентом IoT Edge. Допустимые значения: 200 success, Invalid configuration, 400412 Invalid schema version, 417 Desired properties are empty, 500 Failed.
описаниеПоследнегоЖелаемогоСтатуса Текстовое описание состояния.
последняя желаемая версия Это целое число относится к последней версии требуемых свойств, обрабатываемых агентом IoT Edge.
runtime.platform.OS Сообщает ОС, запущенную на устройстве.
runtime.platform.architecture Сообщает архитектуру ЦП на устройстве.
schemaVersion Версия схемы сообщаемых свойств.
systemModules.edgeAgent.runtimeStatus Сообщаемое состояние агента IoT Edge: {выполняющаяся | неработоспособная}.
ОписаниеСостоянияМодулейСистемы.edgeAgent Текстовое описание сообщаемого состояния агента 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, выполняющимся на устройстве, и Центром Интернета вещей. Требуемые свойства задаются при применении манифеста развертывания на конкретном устройстве в ходе развертывания на одно устройство или несколько.

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

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

Свойство Описание:
последняя желаемая версия Это целое число относится к последней версии требуемых свойств, обрабатываемых центром IoT Edge.
ПоследнееЖелаемоеСостояние.код Это код состояния, ссылающийся на последние требуемые свойства, известные центру IoT Edge. Допустимые значения: 200 — успех, 400 — недопустимая конфигурация, 500 — сбой.
описаниеПоследнегоЖелаемогоСтатуса Текстовое описание состояния.
клиенты Все клиенты, подключенные к 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 (предварительная версия).