Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:
IoT Edge 1.5
Внимание
IoT Edge 1.5 LTS — это поддерживаемый выпуск. IoT Edge 1.4 LTS достиг конца срока службы 12 ноября 2024 года. Если вы используете более ранний выпуск, ознакомьтесь с Update IoT Edge.
Агент IoT Edge и концентратор IoT Edge — это два модуля, составляющие среду выполнения IoT Edge. Дополнительные сведения об обязанностях каждого модуля среды выполнения см. в разделе понять среду выполнения Azure IoT Edge и ее архитектуру.
В этой статье представлены требуемые и отображаемые в отчете свойства двойников модулей для среды выполнения. Дополнительные сведения о развертывании модулей на устройствах IoT Edge см. в статье learn, как развертывать модули и устанавливать маршруты в IoT Edge.
Двойник модуля имеет следующие элементы:
Требуемые свойства. Серверная часть решения задает необходимые свойства, а модуль считывает их. Модуль также получает уведомления об изменениях в нужных свойствах. Используйте требуемые свойства вместе с указанными свойствами для синхронизации конфигурации модуля или условий.
Сообщаемые свойства. Модуль задает сообщаемые свойства, а серверная часть решения считывает и запрашивает их. Используйте сообщаемые свойства вместе с требуемыми свойствами для синхронизации конфигурации или условий модуля.
Требуемые свойства EdgeAgent
Двойник модуля для агента IoT Edge называется $edgeAgent. Он координирует обмен данными между агентом IoT Edge, работающим на устройстве, и Центр Интернета вещей. Задайте требуемые свойства при применении манифеста развертывания на конкретном устройстве в рамках развертывания для одного устройства или массового развертывания.
| Свойство | Описание: | Обязательное поле |
|---|---|---|
imagePullPolicy |
Указывает, когда нужно извлечь изображение: OnCreate или Никогда. Используйте Never, если изображение уже находится на устройстве. | Да |
restartPolicy |
Когда перезапускать модуль. Возможные значения: никогда: не перезапускать модуль, если он не запущен, при сбое: перезапускать модуль, если он завершился с ненулевым кодом выхода, при плохом состоянии: перезапускать модуль, если он находится в плохом состоянии (см. примечание), всегда: всегда перезапускать модуль, если он не запущен.
Примечание: Политика on-failure перезапускает модули, завершающиеся с ненулевым кодом выхода. Политика on-unhealthy принимается схемой, но среда выполнения в настоящее время не выводит неработоспособное состояние из проверок работоспособности в Docker, поэтому политика не имеет практического эффекта. Дополнительные сведения см. в разделе ограничения и ограничения IoT Edge. |
Да |
runtime.type |
Должен быть 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 адрес обычно {registry name}.azurecr.io. |
нет |
schemaVersion |
Указывает 1.0 или 1.1. Рекомендуется использовать версию 1.1, введённую с IoT Edge версии 1.0.10. | Да |
status |
Требуемое состояние модуля: выполнение или остановка. | Обязательное поле |
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.{moduleId}.version |
Определяемая пользователем строка, представляющая версию этого модуля. | Да |
modules.{moduleId}.type |
Должен быть docker. | Да |
modules.{moduleId}.status |
Запущено | Остановлено | Да |
modules.{moduleId}.restartPolicy |
никогда | в случае сбоя | в случае неисправности | всегда | Да |
modules.{moduleId}.startupOrder |
Целочисленное значение для расположения модуля в порядке запуска. Значение 0 — первое, а максимальное целое число (4294967295) — последнее. Если значение не указано, значение по умолчанию — максимальное целое число. | нет |
modules.{moduleId}.imagePullPolicy |
on-create | никогда | нет |
modules.{moduleId}.env |
Список переменных среды для передачи в модуль. Принимает формат "<name>": {"value": "<value>"}. |
нет |
modules.{moduleId}.settings.image |
Универсальный код ресурса (URI) для изображения модуля. | Да |
modules.{moduleId}.settings.createOptions |
Преобразованный в строку JSON, содержащий параметры для создания контейнера модуля. Параметры создания Docker | нет |
modules.{moduleId}.configuration.id |
Идентификатор развертывания, которое развернуло этот модуль. | Центр Интернета вещей задает это свойство при применении манифеста с помощью развертывания. Не является частью манифеста развертывания. |
version |
Текущая итерация с версией, коммитом и сборкой. | нет |
Сообщенные свойства EdgeAgent
Свойства агента IoT Edge включают три основных компонента информации:
- Состояние применения последних установленных желаемых свойств
- Состояние модулей, работающих на устройстве, как сообщает агент IoT Edge, и
- Копия требуемых свойств, которые в настоящий момент работают на устройстве.
Копия текущих требуемых свойств помогает определить, применило ли устройство последнее развертывание или по-прежнему работает на основе предыдущего манифеста развертывания.
Примечание.
Вы можете запрашивать сообщаемые свойства агента IoT Edge с помощью языка запросов Центр Интернета вещей, чтобы изучать состояние развертывания в масштабе. Сведения об использовании свойств агента IoT Edge для отображения состояния см. в разделе Понимание развертываний IoT Edge для отдельных устройств или в масштабе.
В следующей таблице не содержатся сведения, скопированные из требуемых свойств.
| Свойство | Описание: |
|---|---|
lastDesiredStatus.code |
Код состояния для последних требуемых свойств, видимых агентом IoT Edge. Допустимые значения: 200 Успех, 400 Недопустимая конфигурация, 412 Недопустимая версия схемы, 417 Требуемые свойства пусты, 500 Сбой. |
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.{moduleId}.runtimeStatus |
Состояние модуля: { работает | остановлено | не удалось | откат | нездоровый }. |
modules.{moduleId}.statusDescription |
Текстовое описание состояния модуля, если оно неработоспособно. |
modules.{moduleId}.exitCode |
Код выхода, сообщаемый контейнером модуля, если контейнер завершает выполнение. |
modules.{moduleId}.lastStartTimeUtc |
Время последнего запуска модуля. |
modules.{moduleId}.lastExitTimeUtc |
Время последнего выхода из модуля. |
modules.{moduleId}.lastRestartTimeUtc |
Время последнего перезапуска модуля. |
modules.{moduleId}.restartCount |
Количество раз, когда этот модуль был перезагружен в рамках политики перезапуска. |
version |
Версия образа. Например: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }. |
Требуемые свойства EdgeHub
Двойник модуля для концентратора IoT Edge называется $edgeHub. Он координирует обмен данными между концентратором IoT Edge, работающим на устройстве, и Центр Интернета вещей. Задайте требуемые свойства при применении манифеста развертывания на конкретном устройстве в рамках развертывания для одного устройства или массового развертывания.
| Свойство | Описание: | Требуется в манифесте развертывания |
|---|---|---|
schemaVersion |
Либо 1.0, либо 1.1. Версия 1.1 была представлена в составе IoT Edge версии 1.0.10 и рекомендуется. | Да |
routes.{routeName} |
Строка, представляющая маршрут концентратора IoT Edge. Дополнительные сведения см. в разделе Объявление маршрутов. | Элемент routes может присутствовать, но быть пустым. |
storeAndForwardConfiguration.timeToLiveSecs |
IoT Edge концентратор сохраняет сообщения в течение определенного времени (в секундах), если они отключены от конечных точек маршрутизации, таких как Центр Интернета вещей или локальный модуль. Это состояние сохраняется при любых отключениях питания или перезапусках. Дополнительные сведения см. в статье Возможности автономной работы. | Да |
Сообщенные свойства EdgeHub
| Свойство | Описание: |
|---|---|
lastDesiredVersion |
Это целое число относится к последней версии требуемых свойств, обрабатываемых центром IoT Edge. |
lastDesiredStatus.code |
Код состояния, ссылающийся на последние требуемые свойства, видимые центром IoT Edge. Допустимые значения: 200 успешность, 400 недопустимая конфигурация, 500 сбой. |
lastDesiredStatus.description |
Текстовое описание состояния. |
clients |
Все клиенты, подключенные к EdgeHub, включая информацию о состоянии и времени последнего подключения. Пример: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }. Дополнительные сведения о том, какие подключения отображаются в этом свойстве, см. в разделе "Какие подключения отображаются".clients |
clients.{device or moduleId}.status |
Состояние подключения этого устройства или модуля. Возможные значения: подключенные или отключенные. В отключенном состоянии могут находиться только идентификаторы модуля. Подчиненные устройства, подключающиеся к IoT Edge концентратору, отображаются только при подключении. |
clients.{device or moduleId}.lastConnectTime |
Время последнего подключения модуля или устройства. |
clients.{device or moduleId}.lastDisconnectTime |
Время последнего отключения модуля или устройства. |
schemaVersion |
Версия схемы сообщаемых свойств. |
version |
Версия образа. Например: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }. |
Какие подключения отображаются в clients
clients Сообщаемое свойство перечисляет каждое отдельное логическое подключение, которое обслуживает локальный edgeHub, за исключением его собственного идентификатора $edgeHub. Specifically:
-
Модули на том же пограничном устройстве отображаются как
<deviceId>/<moduleName>. Это включает в себя$edgeAgent, так как локальный edgeAgent подключается через локальный edgeHub. -
Дочерние устройства IoT Edge нижестоящего уровня отображаются как
<childDeviceId>/$edgeHubи<childDeviceId>/$edgeAgent. Отдельной записи<childDeviceId>нет. Подключение дочернего$edgeHubобъекта — это "собственное подключение устройства", на которое ссылается число подключенных клиентов в иерархии шлюза. -
Нисходящие конечные устройства (устройства, не являющиеся устройствами IoT Edge) отображаются как
<deviceId>без суффикса модуля. - Собственный идентификатор локального edgeHub (
<deviceId>/$edgeHub) намеренно опущен, чтобы избежать самоссылки.
При отключении модуля его запись остается в clients со статусом Disconnected. При отключении нижестоящего устройства его запись удаляется из clients. Количество видимых записей равно количеству, заложенному для MaxConnectedClients. Нет скрытого дополнительного подключения.
Следующие шаги
Сведения об использовании этих свойств для создания манифестов развертывания см. в статье Understand, как можно использовать, настраивать и повторно использовать модули IoT Edge.