Información del entorno de ejecución de Azure IoT Edge y su arquitectura

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 runtime de IoT Edge es una colección de programas que convierten un dispositivo en un dispositivo IoT Edge. Colectivamente, los componentes del entorno de ejecución de Azure IoT Edge permiten que los dispositivos IoT Edge reciban el código para ejecutarse en el perímetro y comunicar los resultados.

El entorno de ejecución de Azure IoT Edge es el responsable de las siguientes funciones en los dispositivos IoT Edge:

  • Instalación y actualización de las cargas de trabajo en el dispositivo.

  • Mantenimiento de los estándares de seguridad de Azure IoT Edge en el dispositivo.

  • Garantía de que los módulos de IoT Edge están siempre en ejecución.

  • Notificación del mantenimiento del módulo a la nube para la supervisión remota.

  • Administrar la comunicación entre:

    • Dispositivos de bajada y dispositivos IoT Edge
    • Módulos en un dispositivo IoT Edge
    • Un dispositivo IoT Edge y la nube
    • Dispositivos de IoT Edge

Screenshot of how runtime communicates insights and module health to I o T Hub.

Las responsabilidades del entorno de ejecución de IoT Edge se dividen en dos categorías: comunicación y administración de los módulos. Estos dos roles los realizan dos componentes que forman parte del runtime de IoT Edge. El agente de IoT Edge implementa y supervisa los módulos, mientras que el centro de IoT Edge se encarga de la comunicación.

El agente y el centro de IoT Edge son módulos, como cualquier otro que se ejecuta en un dispositivo IoT Edge. A veces se denominan módulos del entorno de ejecución.

Agente de IoT Edge

El agente de IoT Edge es uno de los dos módulos que componen el entorno de ejecución de Azure IoT Edge. Es responsable de crear instancias de los módulos, lo que garantiza que continúen ejecutándose y notificando el estado de los módulos a IoT Hub. Estos datos de configuración se escriben como una propiedad del módulo gemelo del agente de IoT Edge.

El demonio de seguridad de IoT Edge inicia el agente de IoT Edge durante el inicio del dispositivo. El agente recupera su módulo gemelo de IoT Hub e inspecciona el manifiesto de implementación. El manifiesto de implementación es un archivo JSON que declara al módulo que debe iniciarse.

Cada elemento del manifiesto de implementación contiene información específica de un módulo y el agente de IoT Edge lo usa para controlar el ciclo de vida del módulo. Para obtener más información acerca de todas las propiedades que usa el agente de IoT Edge para controlar los módulos, lea acerca de las propiedades del agente de IoT Edge y los módulos gemelos del centro de IoT Edge.

El agente de IoT Edge envía la respuesta de entorno de ejecución a IoT Hub. A continuación, se muestra una lista de las posibles respuestas:

  • 200 - CORRECTO
  • 400 - La configuración de implementación tiene un formato incorrecto o no es válida.
  • 417 - El dispositivo no tiene un conjunto de configuración de implementación.
  • 412 - La versión del esquema de la configuración de implementación no es válida.
  • 406 - El dispositivo de IoT Edge está sin conexión o no envía informes de estado.
  • 500 - Error en el entorno en tiempo de ejecución de Azure IoT Edge.

Para más información sobre la creación de manifiestos de implementación, consulte Obtenga información sobre cómo implementar módulos y establecer rutas en IoT Edge.

Seguridad

El agente de IoT Edge desempeña un papel fundamental en la seguridad de un dispositivo IoT Edge. Por ejemplo, realiza acciones como comprobar la imagen de un módulo antes de iniciarlo.

Para más información acerca del marco de seguridad de Azure IoT Edge, consulte Administrador de seguridad de IoT Edge.

Centro de IoT Edge

El centro de IoT Edge es el otro módulo que constituye el entorno de ejecución de Azure IoT Edge. Actúa como un proxy local de IoT Hub exponiendo los mismos puntos de conexión de protocolo que IoT Hub. Esta coherencia significa que los clientes pueden conectarse a la instancia de IoT Edge en tiempo de ejecución de la misma forma que lo harían a IoT Hub.

El centro de IoT Edge no es una versión completa del centro de IoT Hub que se ejecuta localmente. El centro de IoT Edge delega silenciosamente algunas tareas en IoT Hub. Por ejemplo, el centro de IoT Edge descarga automáticamente la información de autorización de IoT Hub durante la primera conexión de un dispositivo para habilitarlo. Una vez establecida la primera conexión, el centro de IoT Edge almacena la información de autorización en caché localmente. Las conexiones futuras del dispositivo se autorizan sin tener que descargar de nuevo la información de autorización de la nube.

Comunicación en la nube

Para reducir el ancho de banda que usa la solución IoT Edge, el centro de IoT Edge optimiza el número real de conexiones a la nube. El centro de IoT Edge toma las conexiones lógicas de módulos o dispositivos de bajada y las combina para crear una sola conexión física a la nube. Los detalles de este proceso son transparentes para el resto de la solución. Los clientes creen que tienen su propia conexión a la nube, aunque todos los datos van a enviarse a través de la misma. El centro de IoT Edge puede usar el protocolo AMQP o MQTT para comunicarse con la nube, independientemente de los protocolos que usen los dispositivos de nivel inferior. No obstante, el centro de IoT Edge actualmente solo admite la combinación de conexiones lógicas en una única conexión física mediante el uso de AMQP como protocolo de nivel superior y sus capacidades de multiplexación. AMQP es el protocolo de nivel superior predeterminado.

Screenshot showing relationships to I o T Edge hub as a gateway between physical devices and I o T Hub.

El centro de IoT Edge puede determinar si está conectado a IoT Hub. Si se pierde la conexión, el centro de IoT Edge guarda los mensajes o las actualizaciones gemelas localmente. Una vez que se vuelva a establecer una conexión, se sincronizan todos los datos. La ubicación que usa esta caché temporal viene determinada por una propiedad del módulo gemelo del centro de IoT Edge. El tamaño de la caché no está limitado y aumentará siempre y cuando el dispositivo tenga capacidad de almacenamiento. Para más información, consulte la Funcionalidades sin conexión.

Comunicación local

El centro de IoT Edge facilita la comunicación local. Permite la comunicación de dispositivos a módulos y entre módulos mediante la administración de mensajes para mantener a los dispositivos y módulos independientes entre sí. El centro de IoT Edge admite las características de enrutamiento de mensajes compatibles con IoT Hub.

Uso del enrutamiento

El mecanismo de administración usa las mismas características de enrutamiento que IoT Hub para especificar cómo se pasan los mensajes entre dispositivos o módulos. En primer lugar, los módulos o dispositivos especifican las entradas en las que aceptan mensajes y las salidas en las que los escriben. Después, un desarrollador de soluciones puede enrutar los mensajes entre un origen (por ejemplo, las salidas) y un destino (por ejemplo, las entradas) con posibles filtros.

Screenshot showing how routes between modules go through I o T Edge hub.

Los dispositivos o módulos creados con los SDK de dispositivo IoT de Azure pueden usar el enrutamiento mediante el protocolo AMQP. Se admiten todos los elementos primitivos de IoT Hub (por ejemplo, la telemetría, los métodos directos, C2D, los gemelos), aunque no se admite la comunicación a través de temas definidos por el usuario.

Para más información sobre las rutas, consulte Obtenga información sobre cómo implementar módulos y establecer rutas en IoT Edge.

Características del mecanismo de administración disponibles:

Características Enrutamiento
Telemetría de D2C
Telemetría local
DirectMethods
Gemelo
C2D para dispositivos
Ordenación
Filtering
Temas definidos por el usuario
Dispositivo a dispositivo
Difusión local

Conexión al centro de IoT Edge

El centro de IoT Edge acepta conexiones de los clientes de dispositivos o módulos a través del protocolo MQTT o del protocolo AMQP.

Nota:

El centro de IoT Edge admite clientes que se conectan mediante MQTT o AMQP. No admite los clientes que usan HTTP.

Cuando un cliente se conecta al centro de IoT Edge, ocurre lo siguiente:

  1. Si se usa la Seguridad de la capa de transporte (TLS) (recomendado), se crea un canal TLS para establecer una comunicación cifrada entre el cliente y el centro de IoT Edge.
  2. La información de autenticación se envía desde el cliente al centro de IoT Edge para identificarse.
  3. El centro de IoT Edge autoriza o rechaza la conexión en función de la directiva de autorización.

Conexiones seguras (TLS)

De manera predeterminada, el centro de IoT Edge solo acepta conexiones protegidas con la Seguridad de la capa de transporte (TLS), por ejemplo, conexiones cifradas que un tercero no puede descifrar.

Si un cliente se conecta con el puerto 8883 (MQTTS) o 5671 (AMQPS) al centro de IoT Edge, se debe crear un canal TLS. Durante el protocolo de enlace TLS, el centro de IoT Edge envía su cadena de certificados que el cliente debe validar. Para validar la cadena de certificados, el certificado raíz del centro de IoT Edge debe estar instalado como certificado de confianza en el cliente. Si el certificado raíz no es de confianza, el centro de IoT Edge rechazará la biblioteca cliente con un error de comprobación de certificados.

Los pasos que deben seguirse para instalar este certificado raíz del agente en los clientes del dispositivo se describen en la documentación de la puerta de enlace transparente y de la preparación de un dispositivo de nivel inferior. Los módulos pueden usar el mismo certificado raíz que el centro de IoT Edge si usan la API de demonio de IoT Edge.

Autenticación

IoT Edge Hub solo acepta conexiones de dispositivos o módulos que tienen una identidad de IoT Hub. Por ejemplo, los que se han registrado en IoT Hub y tienen uno de los tres métodos de autenticación de cliente admitidos por IoT Hub para demostrar su identidad: autenticación de claves simétricas, autenticación autofirmada X.509, autenticación firmada por entidad de certificación X.509. El centro de IoT Edge puede comprobar estas identidades de IoT Hub de manera local para que las conexiones se sigan realizando sin conexión.

Actualmente, los módulos de IoT Edge solo admiten la autenticación de clave simétrica.

Authorization

Comprobar que un cliente pertenece al conjunto de clientes de confianza definidos en IoT Hub. El conjunto de clientes de confianza se especifica mediante la configuración de relaciones entre elementos primarios y secundarios o dispositivos y módulos en IoT Hub. Cuando se crea un módulo en IoT Edge, se establece automáticamente una relación de confianza entre dicho módulo y el dispositivo IoT Edge. Este es el único modelo de autorización que admite el mecanismo de administración de enrutamiento.

Configuración remota

La nube controla por completo al centro de IoT Edge. Dicho centro obtiene su configuración de IoT Hub a través de su módulo gemelo. El gemelo contiene una propiedad deseada denominada routes (rutas) que declara cómo se pasan los mensajes en una implementación. Para más información, consulte Declaración de rutas.

Además, se pueden hacer varias configuraciones mediante el establecimiento de variables de entorno en el centro de IoT Edge.

Telemetría de calidad en tiempo de ejecución

IoT Edge recopila la telemetría anónima del entorno en tiempo de ejecución del host y de los módulos del sistema para mejorar la calidad del producto. Esta información se denomina telemetría de calidad en tiempo de ejecución. La telemetría recopilada se envía periódicamente como mensajes de dispositivo a nube a IoT Hub desde el agente de IoT Edge. Estos mensajes no aparecen en la telemetría normal del cliente y no consumen ninguna cuota de mensajes.

El agente de IoT Edge y el concentrador generan métricas que se pueden recopilar para comprender el rendimiento del dispositivo. El agente de IoT Edge recopila un subconjunto de estas métricas como parte de la telemetría de calidad en tiempo de ejecución. Las métricas recopiladas para la telemetría de calidad en tiempo de ejecución se etiquetan con la etiqueta ms_telemetry. Para obtener información sobre todas las métricas disponibles, consulte Acceso a las métricas integradas.

Cualquier información que pueda identificar a una persona u organización, como los nombres de dispositivo y módulos, se quita antes de la carga para garantizar la naturaleza anónima de la telemetría de calidad en tiempo de ejecución.

El agente de IoT Edge recopila la telemetría cada hora y envía un mensaje a IoT Hub cada 24 horas.

Si quiere dejar de enviar telemetría en tiempo de ejecución desde sus dispositivos, hay dos maneras de hacerlo:

  • Establezca la variable de entorno SendRuntimeQualityTelemetry en false para edgeAgent, o
  • Desactive la opción en Azure Portal durante la implementación.

Pasos siguientes