Compartir a través de


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

Se aplica a:Marca de verificación de IoT Edge 1.5 IoT Edge 1.5

Importante

IoT Edge 1.5 LTS es la versión compatible. IoT Edge 1.4 LTS finaliza su 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 Descripció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 más información sobre cómo implementar módulos en dispositivos IoT Edge, consulte Cómo implementar módulos y establecer rutas en IoT Edge.

Un módulo gemelo incluye lo siguiente:

  • Propiedades deseadas. El back-end de la solución establece las propiedades deseadas y el módulo los lee. El módulo también recibe 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 establece las propiedades notificadas y el back-end de la solución lee y los consulta. 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 para el agente de IoT Edge se denomina $edgeAgent. Coordina las comunicaciones entre el agente de IoT Edge que se ejecuta en un dispositivo y 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 Especifica cuándo extraer la imagen: OnCreate o Never. Use Nunca si la imagen ya está en el dispositivo.
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.
runtime.type Debe ser docker.
runtime.settings.minDockerVersion Especifica la versión mínima de Docker requerida por este manifiesto de implementación.
runtime.settings.loggingOptions Especifica un JSON en forma de cadena con las opciones de seguimiento para el contenedor del agente de IoT Edge. Obtenga más información sobre las opciones de registro de Docker. No
runtime.settings.registryCredentials. {registryId}.username Especifica 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 de módulo privado. 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 Especifica 1.0 o 1.1. Se recomienda la versión 1.1, introducida con la versión 1.0.10 de IoT Edge.
estado Estado deseado del módulo: Running o Stopped. Obligatorio
systemModules.edgeAgent.type Debe ser docker.
systemModules.edgeAgent.startupOrder Especifica un entero para la posición del módulo en el orden de inicio. 0 es primero y el entero máximo (4294967295) es el último. Si no se proporciona ningún valor, el valor predeterminado es entero máximo. No
systemModules.edgeAgent.settings.image Especifica el URI de la imagen del agente de IoT Edge. El agente de IoT Edge no se puede actualizar a sí mismo.
systemModules.edgeAgent.settings.createOptions Especifica un JSON con cadenas con opciones para crear el contenedor del agente de IoT Edge. Obtenga más información sobre las 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.
systemModules.edgeHub.status Debe ser running.
systemModules.edgeHub.restartPolicy Debe ser always.
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.
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.
Módulos. {moduleId}.version Una cadena definida por el usuario que representa la versión de este módulo.
Módulos. {moduleId}.type Debe ser docker.
Módulos. {moduleId}.status {running | detenido}
Módulos. {moduleId}.restartPolicy {nunca | always}
Módulos. {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
Módulos. {moduleId}.imagePullPolicy {on-create | never} No
Módulos. {moduleId}.env Lista de variables de entorno que se van a pasar al módulo. Adopta el formato "<name>": {"value": "<value>"}. No
Módulos. {moduleId}.settings.image El URI de la imagen del módulo.
Módulos. {moduleId}.settings.createOptions Cadenas JSON que contienen las opciones de creación del contenedor del módulo. Opciones de creación de Docker No
Módulos. {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.
Versión 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 elementos principales de información:

  • Estado de la aplicación de las propiedades deseadas procesadas por última vez,
  • Estado de los módulos que se ejecutan actualmente en el dispositivo, tal como lo ha notificado el agente de IoT Edge, y
  • Copia de las propiedades deseadas que se ejecutan actualmente en el dispositivo.

La copia de las propiedades deseadas actuales ayuda a determinar si el dispositivo ha aplicado la implementación más reciente o sigue ejecutando un manifiesto de implementación anterior.

Nota:

Puede consultar las propiedades notificadas del agente de IoT Edge con el lenguaje de consulta de IoT Hub para investigar el estado de implementación a escala. Aprenda a usar las propiedades del agente de IoT Edge para el estado en Descripción de las implementaciones de IoT Edge para dispositivos individuales o a escala.

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

Propiedad Descripción
lastDesiredStatus.code Código de estado de las últimas propiedades deseadas que ve 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 Informa del sistema operativo que se ejecuta en el dispositivo.
runtime.platform.architecture Informa de la arquitectura de CPU en el 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.
Módulos. {moduleId}.runtimeStatus Estado del módulo: { running | stopped | failed | backoff | unhealthy }.
Módulos. {moduleId}.statusDescription Descripción de texto del estado del módulo si el estado es unhealthy.
Módulos. {moduleId}.exitCode El código de salida que ha notificado el contenedor del módulo si se produce la salida del contenedor.
Módulos. {moduleId}.lastStartTimeUtc Hora en la que el módulo se inició por última vez.
Módulos. {moduleId}.lastExitTimeUtc Hora a la que se salió por última vez del módulo.
Módulos. {moduleId}.lastRestartTimeUtc Hora en la que el módulo se reinició por última vez.
Módulos. {moduleId}.restartCount Número de veces que se ha reiniciado este módulo como parte de la directiva de reinicio.
Versión 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.
Rutas. {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": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
Clientes. {device o 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.
Clientes. {device o moduleId}.lastConnectTime Última vez que se ha conectado el dispositivo o módulo.
Clientes. {device o moduleId}.lastDisconnectTime Última vez que se ha desconectado el dispositivo o módulo.
schemaVersion Versión de esquema de las propiedades notificadas.
Versión 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 .