Propiedades de los módulos gemelos del agente de IoT Edge y del centro de IoT Edge
Se aplica a: 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) | Sí |
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. | Sí |
runtime.type | Tiene que ser Docker. | Sí |
runtime.settings.minDockerVersion | Se establece en la versión mínima de Docker requerida por este manifiesto de implementación. | Sí |
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. | Sí |
status | Estado deseado del módulo: En ejecución o detenido. | Obligatorio |
systemModules.edgeAgent.type | Tiene que ser Docker. | Sí |
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. | Sí |
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. | Sí |
systemModules.edgeHub.status | Tiene que estar en ejecución. | Sí |
systemModules.edgeHub.restartPolicy | Tiene que ser siempre. | Sí |
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. | Sí |
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. | Sí |
modules.{moduleId}.type | Tiene que ser Docker. | Sí |
modules.{moduleId}.status | {running | stopped} | Sí |
modules.{moduleId}.restartPolicy | {nunca | siempre} | Sí |
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. | Sí |
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:
- El estado de la aplicación de las propiedades deseadas procesadas por última vez.
- 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.
- 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. | Sí |
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. | Sí |
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 .