Uso de funcionalidades sin conexión ampliadas en dispositivos, módulos y dispositivos secundarios IoT Edge

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.

Azure IoT Edge admite operaciones sin conexión extendidas en los dispositivos IoT Edge y también habilita las 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.

Cómo funciona

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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 de bajada asignados pueden funcionar indefinidamente sin conexión después de la sincronización inicial de un solo uso. 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.

Para más información sobre cómo crear una relación de elementos primarios y secundarios entre un dispositivo IoT Edge y un dispositivo IoT, consulte 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 el caso de los dispositivos existentes, puede declarar la relación desde la página de detalles del dispositivo en Azure Portal del dispositivo primario 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 Conectar 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:

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 el período de vida , por lo que el centro de IoT Edge mantiene los mensajes hasta que el dispositivo se vuelve a conectar.
  • Agregue espacio en disco adicional para el almacenamiento de mensajes.

Período de vida

La configuración de período de vida es la cantidad de tiempo (en segundos) que un mensaje puede esperar a que se entregue 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 obtener más información, consulte Concesión de acceso a 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: