Propiedades de los módulos gemelos del agente de IoT Edge y del centro de IoT Edge

Se aplica a:IoT Edge 1.4 checkmark IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está usando una versión anterior, consulte Actualización de IoT Edge.

El agente de IoT Edge y el centro de IoT Edge son dos módulos que constituyen el entorno de tiempo de ejecución de IoT Edge. Para más información sobre las responsabilidades de cada módulo en tiempo de ejecución, consulte Información del entorno de ejecución de Azure IoT Edge y su arquitectura.

En este artículo se proporcionan las propiedades deseadas y notificadas de los módulos gemelos de tiempo de ejecución. Para obtener más información sobre cómo implementar módulos en dispositivos IoT Edge, vea Obtener información sobre cómo implementar módulos y establecer rutas en IoT Edge.

Un módulo gemelo incluye lo siguiente:

  • Propiedades deseadas. El back-end de solución puede establecer propiedades deseadas, y el módulo puede leerlas. El módulo también puede recibir notificaciones de cambios en las propiedades deseadas. Las propiedades deseadas se usan junto con las propiedades notificadas para sincronizar la configuración o las condiciones del módulo.

  • Propiedades notificadas. El módulo puede establecer propiedades notificadas, y el back-end de solución puede leerlas y consultarlas. Las propiedades notificadas se usan junto con las propiedades deseadas para sincronizar la configuración o las condiciones del módulo.

Propiedades deseadas de EdgeAgent

El módulo gemelo del agente de IoT Edge se denomina $edgeAgent y coordina las comunicaciones entre el agente de IoT Edge que se ejecuta en un dispositivo y en IoT Hub. Las propiedades deseadas se establecen al aplicar un manifiesto de implementación en un dispositivo específico como parte de la implementación de un solo dispositivo o a escala.

Propiedad Descripción Obligatorio
imagePullPolicy Cuándo extraer la imagen en OnCreate o Never (nunca se puede usar si la imagen ya está en el dispositivo)
restartPolicy Cuando se debe reiniciar el módulo. Los valores posibles son: Nunca: no reinicie el módulo si no se está ejecutando, Siempre: reinicie siempre el módulo si no se está ejecutando, En mal estado: reinicie el módulo si no es correcto. Incorrecto es lo que Docker informa en función de una comprobación de estado, por ejemplo , "Incorrecto: el contenedor no funciona correctamente", On-Failed: restart if Failed.
runtime.type Tiene que ser Docker.
runtime.settings.minDockerVersion Se establece en la versión mínima de Docker requerida por este manifiesto de implementación.
runtime.settings.loggingOptions Cadenas JSON que contienen las opciones de registro del contenedor del agente de IoT Edge. Opciones de registro de Docker No
runtime.settings.registryCredentials.{registryId}.username El nombre de usuario del registro de contenedor. Para Azure Container Registry, el nombre de usuario suele ser el nombre del registro. Las credenciales del Registro son necesarias para las imágenes del módulo privadas. No
runtime.settings.registryCredentials.{registryId}.password La contraseña del registro de contenedor. No
runtime.settings.registryCredentials.{registryId}.address La dirección del registro de contenedor. Para Azure Container Registry, la dirección suele ser {nombre del registro}.azurecr.io. No
schemaVersion 1.0 o 1.1. La versión 1.1 se incluyó por primera vez con IoT Edge versión 1.0.10 y se recomienda.
status Estado deseado del módulo: En ejecución o detenido. Obligatorio
systemModules.edgeAgent.type Tiene que ser Docker.
systemModules.edgeAgent.startupOrder Valor entero para la ubicación que tiene un módulo en el orden de inicio. Un 0 es primero y el entero máximo (4294967295) es el último. Si no se proporciona un valor, el valor predeterminado es entero máximo. No
systemModules.edgeAgent.settings.image El URI de la imagen del agente de IoT Edge. Actualmente, el agente de IoT Edge no puede actualizarse automáticamente.
systemModules.edgeAgent.settings.createOptions Cadenas JSON que contienen las opciones de creación del contenedor del agente de IoT Edge. Opciones de creación de Docker No
systemModules.edgeAgent.configuration.id El identificador de la implementación que implementó este módulo. Esta propiedad la establece IoT Hub cuando se aplica el manifiesto mediante una implementación. No forma parte de un manifiesto de implementación.
systemModules.edgeHub.type Tiene que ser Docker.
systemModules.edgeHub.status Tiene que estar en ejecución.
systemModules.edgeHub.restartPolicy Tiene que ser siempre.
systemModules.edgeHub.startupOrder Valor entero para el lugar que ocupa un módulo en el orden de inicio. Un 0 es primero y el entero máximo (4294967295) es el último. Si no se proporciona un valor, el valor predeterminado es entero máximo. No
systemModules.edgeHub.settings.image El URI de la imagen del centro de IoT Edge.
systemModules.edgeHub.settings.createOptions Cadenas JSON que contienen las opciones de creación del contenedor del centro de IoT Edge. Opciones de creación de Docker No
systemModules.edgeHub.configuration.id El identificador de la implementación que implementó este módulo. Esta propiedad la establece IoT Hub cuando se aplica el manifiesto mediante una implementación. No forma parte de un manifiesto de implementación.
modules.{moduleId}.version Una cadena definida por el usuario que representa la versión de este módulo.
modules.{moduleId}.type Tiene que ser Docker.
modules.{moduleId}.status {running | stopped}
modules.{moduleId}.restartPolicy {nunca | siempre}
modules.{moduleId}.startupOrder Valor entero para la ubicación que tiene un módulo en el orden de inicio. Un 0 es primero y el entero máximo (4294967295) es el último. Si no se proporciona un valor, el valor predeterminado es entero máximo. No
modules.{moduleId}.imagePullPolicy {on-create | never} No
modules.{moduleId}.env Lista de variables de entorno que se van a pasar al módulo. Toma el formato "<name>": {"value": "<value>"}. No
modules.{moduleId}.settings.image El URI de la imagen del módulo.
modules.{moduleId}.settings.createOptions Cadenas JSON que contienen las opciones de creación del contenedor del módulo. Opciones de creación de Docker No
modules.{moduleId}.configuration.id El identificador de la implementación que implementó este módulo. Esta propiedad la establece IoT Hub cuando se aplica el manifiesto mediante una implementación. No forma parte de un manifiesto de implementación.
version Iteración actual que tiene versión, confirmación y compilación. No

Propiedades notificadas de EdgeAgent

Las propiedades notificadas del agente de IoT Edge incluyen tres fragmentos principales de información:

  1. El estado de la aplicación de las propiedades deseadas procesadas por última vez.
  2. El estado de los módulos que se están ejecutando actualmente en el dispositivo, tal y como ha notificado el agente de IoT Edge.
  3. Una copia de las propiedades deseadas que se están ejecutando actualmente en el dispositivo.

La copia de las propiedades deseadas actuales es útil para indicar si el dispositivo ha aplicado la implementación más reciente o sigue ejecutando un manifiesto de implementación anterior.

Nota:

Las propiedades notificadas del agente de IoT Edge resultan útiles porque pueden consultarse con el lenguaje de consultas de IoT Hub para investigar a escala el estado de las implementaciones. Para más información sobre cómo usar las propiedades del agente de IoT Edge para ver el estado, consulte Descripción de las implementaciones de IoT Edge en un único dispositivo o a escala.

La tabla siguiente no incluye la información que se copia de las propiedades deseadas.

Propiedad Descripción
lastDesiredStatus.code Este código de estado hace referencia a las últimas propiedades que ha procesado el agente de IoT Edge. Valores permitidos: 200 Correcto, 400 Configuración no válida, 412 Versión de esquema no válida, 417 Propiedades deseadas están vacías, 500 Error.
lastDesiredStatus.description Descripción de texto del estado.
lastDesiredVersion Este entero hace referencia a la última versión de las propiedades deseadas procesadas mediante el agente de IoT Edge.
runtime.platform.OS Notificación del sistema operativo que se ejecuta en el dispositivo.
runtime.platform.architecture Notificación de la arquitectura de la CPU del dispositivo.
schemaVersion Versión de esquema de las propiedades notificadas.
systemModules.edgeAgent.runtimeStatus Estado notificado del agente de IoT Edge: {running | unhealthy}.
systemModules.edgeAgent.statusDescription Descripción de texto del estado notificado del agente de IoT Edge.
systemModules.edgeAgent.exitCode El código de salida notificado por el contenedor del agente de IoT Edge si se cierra el contenedor.
systemModules.edgeAgent.lastStartTimeUtc Hora en que se inició por última vez el agente de IoT Edge.
systemModules.edgeAgent.lastExitTimeUtc Hora en que el agente de IoT Edge salió por última vez.
systemModules.edgeHub.runtimeStatus Estado del centro de IoT Edge: { running | stopped stopped | | failed backoff | unhealthy }.
systemModules.edgeHub.statusDescription Descripción del texto del estado del centro de IoT Edge, si es incorrecto.
systemModules.edgeHub.exitCode Código de salida notificado por el contenedor del centro de IoT Edge, si se cierra el contenedor.
systemModules.edgeHub.lastStartTimeUtc Hora en la que el centro de IoT Edge se inició por última vez.
systemModules.edgeHub.lastExitTimeUtc Hora en la que se salió por última vez del centro de IoT Edge.
systemModules.edgeHub.lastRestartTimeUtc Hora en la que el centro de IoT Edge se reinició por última vez.
systemModules.edgeHub.restartCount Número de veces que se ha reiniciado este módulo como parte de la directiva de reinicio.
modules.{moduleId}.runtimeStatus Estado del módulo: { running | stopped stopped | failed | backoff | unhealthy }.
modules.{moduleId}.statusDescription Descripción del texto del estado del módulo, si es incorrecto.
modules.{moduleId}.exitCode El código de salida notificado por el contenedor del módulo, si el contenedor se cierra.
Módulos. {moduleId}.lastStartTimeUtc Hora en la que el módulo se inició por última vez.
modules.{moduleId}.lastExitTimeUtc Hora a la que se cerró por última vez el módulo.
modules.{moduleId}.lastRestartTimeUtc Hora en la que el módulo se reinició por última vez.
modules.{moduleId}.restartCount Número de veces que se ha reiniciado este módulo como parte de la directiva de reinicio.
version Versión de la imagen. Ejemplo: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Propiedades deseadas de EdgeHub

El módulo gemelo del centro de IoT Edge se denomina $edgeHub y coordina las comunicaciones entre el centro de IoT Edge que se ejecuta en un dispositivo y en IoT Hub. Las propiedades deseadas se establecen al aplicar un manifiesto de implementación en un dispositivo específico como parte de la implementación de un solo dispositivo o a escala.

Propiedad Descripción Requerida en el manifiesto de implementación
schemaVersion 1.0 o 1.1. La versión 1.1 se incluyó por primera vez con IoT Edge versión 1.0.10 y se recomienda.
routes.{routeName} Una cadena que representa una ruta del centro de IoT Edge. Para obtener más información, vea Declaración de rutas. El elemento routes puede estar presente, pero vacío.
storeAndForwardConfiguration.timeToLiveSecs El tiempo del dispositivo en segundos que el centro de IoT Edge conserva los mensajes en caso de que se desconecte de algún punto de conexión de enrutamiento, ya sea IoT Hub o un módulo local. Este tiempo se conserva durante los apagados o reinicios. Para más información, consulte la Funcionalidades sin conexión.

Propiedades notificadas de EdgeHub

Propiedad Descripción
lastDesiredVersion Este entero hace referencia a la última versión de las propiedades deseadas procesadas mediante el centro de IoT Edge.
lastDesiredStatus.code El código de estado hace referencia a las últimas propiedades que ha procesado el centro de IoT Edge. Valores permitidos: 200 (correcto), 400 (configuración no válida) y 500 (error).
lastDesiredStatus.description Descripción de texto del estado.
enriquecidos Todos los clientes conectados a edgeHub con el estado y la hora de la última conexión. Ejemplo: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Conectar ed", "last Conectar edTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
clients.{device or moduleId}.status El estado de conectividad de este dispositivo o módulo. Valores posibles {conectados | desconectados}. Solo las identidades de módulo pueden estar en el estado disconnected. Los dispositivos de nivel inferior que se conectan al centro de IoT Edge solo aparecen cuando se conectan.
clients.{device or moduleId}.lastConnectTime Última vez que se ha conectado el dispositivo o módulo.
clients.{device or moduleId}.lastDisconnectTime Última vez que se ha desconectado el dispositivo o módulo.
schemaVersion Versión de esquema de las propiedades notificadas.
version Versión de la imagen. Ejemplo: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Pasos siguientes

Para aprender a usar estas propiedades para crear manifiestos de implementación, consulte Descripción de cómo se pueden utilizar, configurar y reutilizar los módulos de IoT Edge .