Uso de funcionalidades sin conexión ampliadas en dispositivos, módulos y dispositivos secundarios 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.
Azure IoT Edge permite realizar operaciones sin conexión ampliadas en los dispositivos IoT Edge y también operaciones sin conexión en dispositivos de bajada. Si un dispositivo IoT Edge ha podido conectarse a IoT Hub aunque sea una sola vez, ese dispositivo y cualquier dispositivo de bajada podrán seguir funcionando con una conexión intermitente o sin conexión.
Funcionamiento
Cuando un dispositivo de IoT Edge está en modo sin conexión, el centro de IoT Edge asume tres roles:
- Almacena los mensajes que deberían enviarse y los guarda hasta que el dispositivo vuelva a tener conexión.
- Actúa en nombre de IoT Hub para autenticar los módulos y los dispositivos de bajada, para que puedan seguir funcionando.
- Permite la comunicación entre los dispositivos de bajada, que normalmente se realizaría mediante IoT Hub.
En el ejemplo siguiente, se muestra cómo funciona un escenario de IoT Edge en modo sin conexión:
Configuración de dispositivos
De forma automática, los dispositivos de IoT Edge tienen habilitadas funcionalidades sin conexión. Para hacer extensible esa capacidad a otros dispositivos, hay que configurar los dispositivos de bajada para que confíen en su dispositivo principal asignado y enrutar las comunicaciones de dispositivo a nube a través del principal como puerta de enlace.
Sincronización con IoT Hub
Es necesario que, al menos una vez después de instalar el entorno de ejecución de IoT Edge, el dispositivo de IoT Edge tenga conexión para sincronizarse con IoT Hub. En esta sincronización, el dispositivo IoT Edge obtiene información detallada sobre los dispositivos de bajada asignados a él. El dispositivo IoT Edge también actualiza de forma segura su caché local para permitir las operaciones sin conexión y recupera la configuración del almacenamiento local de mensajes de telemetría.
Desconexión
Mientras el dispositivo IoT Edge está desconectado de IoT Hub, sus módulos implementados y los dispositivos de bajada pueden operar indefinidamente. Mientras están sin conexión, los módulos y los dispositivos de bajada pueden iniciarse y reiniciarse autenticándose con el centro de IoT Edge. Los datos de telemetría que deben enviarse a IoT Hub se almacenan localmente. La comunicación entre módulos o entre dispositivos de bajada se realiza mediante mensajes o métodos directos.
Nueva conexión y nueva sincronización con IoT Hub
Una vez que se restaura la conexión con IoT Hub, el dispositivo de IoT Edge vuelve a sincronizarse. Los mensajes almacenados de manera local se entregan a la instancia de IoT Hub directamente, pero dependen de la velocidad de la conexión, la latencia de IoT Hub y otros factores relacionados. Los mensajes se entregan en el mismo orden en el que se almacenaron.
Las diferencias entre las propiedades deseadas y notificadas de los módulos y los dispositivos se concilian. El dispositivo IoT Edge actualiza los cambios en su conjunto de dispositivos de bajada asignados.
Restricciones y límites
Los dispositivos IoT Edge y sus dispositivos descendentes asignados pueden funcionar indefinidamente sin conexión después de la sincronización inicial única. Sin embargo, el almacenamiento de mensajes depende de la configuración del período de vida (TTL) y del espacio en disco disponible para almacenar los mensajes.
Un elemento EdgeAgent de un dispositivo actualiza sus propiedades notificadas cada vez que hay un cambio en el estado de implementación, como una implementación nueva o con errores. Cuando un dispositivo está sin conexión, EdgeAgent no puede notificar el estado a Azure Portal. Por lo tanto, el estado del dispositivo en Azure Portal puede permanecer 200 CORRECTO cuando el dispositivo IoT Edge no tiene conectividad a Internet.
Configuración de dispositivos principales y secundarios
De forma predeterminada, un dispositivo primario puede tener hasta 100 elementos secundarios. Puede cambiar este límite estableciendo la variable de entorno MaxConnectedClients en el módulo edgeHub. Un dispositivo secundario solo tiene un elemento primario.
Nota:
Un dispositivo de bajada emite datos directamente a Internet o a dispositivos de puerta de enlace (habilitado o no para IoT Edge). Un dispositivo secundario puede ser un dispositivo de bajada o un dispositivo de puerta de enlace en una topología anidada.
Los dispositivos de bajada pueden ser cualquier dispositivo, IoT Edge o no, registrado en la misma instancia de IoT Hub.
Si no está familiarizado con la creación de una relación de elementos primarios y secundarios entre un dispositivo IoT Edge y un dispositivo IoT, vea Autenticación de un dispositivo de bajada en Azure IoT Hub. Las secciones de clave simétrica, X.509 autofirmado y X.509 firmado por la entidad de certificación muestran ejemplos de cómo usar Azure Portal y la CLI de Azure para definir las relaciones de elementos primarios y secundarios al crear dispositivos. En los dispositivos existentes, puede declarar la relación en la página de detalles en Azure Portal del dispositivo principal o secundario.
Para más información sobre cómo crear una relación de elementos primarios y secundarios entre dos dispositivos IoT Edge, consulte Conexión de un dispositivo IoT Edge de bajada a una puerta de enlace de Azure IoT Edge.
Configuración del dispositivo principal como puerta de enlace
Se puede considerar una relación principal-secundario como una puerta de enlace transparente, donde el dispositivo secundario tiene su propia identidad en IoT Hub, pero se comunica a través de la nube por medio de su dispositivo principal. Para una comunicación segura, el dispositivo secundario debe ser capaz de comprobar que el dispositivo principal proviene de un origen de confianza. En caso contrario, terceros podrían configurar dispositivos malintencionados para suplantar a los principales e interceptar las comunicaciones.
En los siguientes artículos se describe de forma detallada una manera de crear esta relación de confianza:
- Configuración de un dispositivo IoT Edge para que actúe como puerta de enlace transparente
- Conexión de un dispositivo de bajada (secundario) a una puerta de enlace de Azure IoT Edge
Especificación de los servidores DNS
Para mejorar la solidez, se recomienda especificar las direcciones del servidor DNS usadas en su entorno. Para configurar su servidor DNS para IoT Edge, consulte la resolución que encontrará en el apartado El módulo Agente de Edge notifica "archivo de configuración vacío" y no se inicia ningún módulo en el dispositivo del artículo de solución de problemas.
Ajustes opcionales del modo sin conexión
Si los dispositivos se desconectan, el dispositivo principal IoT Edge almacena todos los mensajes de dispositivo a nube hasta que se restablece la conexión. El módulo del centro de IoT Edge administra el almacenamiento y el reenvío de los mensajes sin conexión.
En el caso de los dispositivos que pueden estar sin conexión durante largos períodos de tiempo, optimice el rendimiento mediante la configuración de dos opciones del centro de IoT Edge:
- Aumente la configuración del período de vida para que el centro de IoT Edge conserve los mensajes hasta que el dispositivo se vuelva a conectar.
- Agregue espacio en disco adicional para el almacenamiento de mensajes.
Período de vida
La configuración del período de vida es la cantidad de tiempo (en segundos) que puede esperar un mensaje para entregarse antes de que expire. El valor predeterminado es 7200 segundos (dos horas). El valor máximo solo está limitado por el valor máximo de una variable de entero, que equivale aproximadamente a dos mil millones.
Esta configuración es una propiedad deseada del centro de IoT Edge, que se almacena en el módulo gemelo. Puede configurarla en Azure Portal o directamente en el manifiesto de implementación.
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
Almacenamiento de host para módulos del sistema
Los mensajes y la información de estado de los módulos se almacenan de manera predeterminada en el sistema de archivos de contenedor local del centro de IoT Edge. Para mejorar la confiabilidad, especialmente cuando se trabaja sin conexión, también puede dedicar almacenamiento en el dispositivo host de IoT Edge. Para más información, consulte Acceso de los módulos al almacenamiento local de un dispositivo.
Pasos siguientes
Más información sobre cómo configurar una puerta de enlace transparente para las conexiones de dispositivos principales y secundarios: