Propiedades de los módulos gemelos del agente de IoT Edge y del centro de IoT Edge
Se aplica a: IoT Edge 1.5 IoT Edge 1.4
Importante
IoT Edge 1.5 LTS e IoT Edge 1.4 LTS son versiones compatibles. IoT Edge 1.4 LTS finaliza el ciclo de vida el 12 de noviembre de 2024. 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 | Cuando se debe extraer la imagen en OnCreate o Never (Never se puede usar si la imagen ya está en el dispositivo) | Sí |
restartPolicy | Cuando se debe reiniciar el módulo. Los valores posibles son: Never: no reiniciar el módulo si no se está ejecutando, Always: reiniciar siempre el módulo si no se está ejecutando, On-Unhealthy: reiniciar el módulo si está en mal estado. "Unhealthy" es lo que Docker informa en función de una comprobación de estado, por ejemplo "Unhealthy: el contenedor no funciona correctamente", On-Failed: reiniciar si falla. | Sí |
runtime.type | Debe 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: Running o Stopped. | Obligatorio |
systemModules.edgeAgent.type | Debe ser docker. | Sí |
systemModules.edgeAgent.startupOrder | Valor entero para la ubicación que ocupa un módulo en el orden de inicio. 0 es el primero y el entero máximo (4294967295) es el último. Si no se proporciona un valor, el valor predeterminado es el 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 | Debe ser docker. | Sí |
systemModules.edgeHub.status | Debe ser running. | Sí |
systemModules.edgeHub.restartPolicy | Debe ser always. | Sí |
systemModules.edgeHub.startupOrder | Valor entero para el lugar que ocupa un módulo en el orden de inicio. 0 es el primero y el entero máximo (4294967295) es el último. Si no se proporciona un valor, el valor predeterminado es el 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 | Debe ser docker. | Sí |
modules.{moduleId}.status | {running | stopped} | Sí |
modules.{moduleId}.restartPolicy | {never | always} | Sí |
modules.{moduleId}.startupOrder | Valor entero para la ubicación que ocupa un módulo en el orden de inicio. 0 es el primero y el entero máximo (4294967295) es el último. Si no se proporciona un valor, el valor predeterminado es el 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. Adopta 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 vacías) y 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 | El 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 que ha notificado el contenedor del agente de IoT Edge si se produce la salida del contenedor. |
systemModules.edgeAgent.lastStartTimeUtc | Hora a la que se inició por última vez el agente de IoT Edge. |
systemModules.edgeAgent.lastExitTimeUtc | Hora a la que se salió por última vez del agente de IoT Edge. |
systemModules.edgeHub.runtimeStatus | Estado del centro de IoT Edge: { running | stopped | failed | backoff | unhealthy }. |
systemModules.edgeHub.statusDescription | Descripción de texto del estado del centro de IoT Edge si es el estado es unhealthy. |
systemModules.edgeHub.exitCode | Código de salida que ha notificado el contenedor del centro de IoT Edge si se produce la salida del contenedor. |
systemModules.edgeHub.lastStartTimeUtc | Hora en la que el centro de IoT Edge se inició por última vez. |
systemModules.edgeHub.lastExitTimeUtc | Hora a 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 | failed | backoff | unhealthy }. |
modules.{moduleId}.statusDescription | Descripción de texto del estado del módulo si el estado es unhealthy. |
modules.{moduleId}.exitCode | El código de salida que ha notificado el contenedor del módulo si se produce la salida del contenedor. |
modules.{moduleId}.lastStartTimeUtc | Hora en la que el módulo se inició por última vez. |
modules.{moduleId}.lastExitTimeUtc | Hora a la que se salió por última vez del 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": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }. |
clients.{device or moduleId}.status | El estado de conectividad de este dispositivo o módulo. Valores posibles {connected | disconnected}. 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 .