Conexión de dispositivos de Azure IoT Edge a una aplicación de Azure IoT Central
Azure IoT Edge traslada los análisis en la nube y la lógica de negocios personalizada de la nube a los dispositivos. Este enfoque permite que la solución en la nube se centre en la información empresarial en lugar de en la administración de datos. Escale horizontalmente la solución de IoT mediante el empaquetado de la lógica de negocios en contenedores estándar, implemente esos contenedores en los dispositivos y supervíselos desde la nube.
En este artículo se describe:
- Patrones de puerta de enlace de IoT Edge con IoT Central.
- Procedimiento para conectar dispositivos IoT Edge a una aplicación de IoT Central.
- Procedimiento para usar IoT Central para administrar los dispositivos IoT Edge.
Para obtener más información acerca de IoT Edge, consulte ¿Qué es Azure IoT Edge?
IoT Edge
IoT Edge está formado por tres componentes:
- Los módulos de IoT Edge son contenedores que ejecutan servicios de Azure, de asociados o código propio del usuario. Los módulos se implementan en los dispositivos de IoT Edge y se ejecutan de forma local en ellos. Un manifiesto de implementación especifica los módulos que se deben implementar en un dispositivo IoT Edge.
- El entorno en tiempo de ejecución de IoT Edge se ejecuta en todos los dispositivos de IoT Edge y administra los módulos que se implementan en cada dispositivo. El tiempo de ejecución consta de dos módulos de IoT Edge: agente de IoT Edge y centro de IoT Edge.
- Una interfaz basada en la nube permite supervisar y administrar los dispositivos de IoT Edge de forma remota. IoT Central es un ejemplo de una interfaz en la nube.
IoT Central habilita las funcionalidades siguientes para los dispositivos IoT Edge:
- Administración de manifiestos de implementación. Una aplicación de IoT Central puede administrar una colección de manifiestos de implementación y asignarlos a los dispositivos.
- Plantillas de dispositivos para describir las funcionalidades de un dispositivo IoT Edge, como:
- Telemetría que envía cada módulo de IoT Edge.
- Las propiedades que notifica cada módulo de IoT Edge.
- Comandos a los que responde cada módulo de IoT Edge.
- Relaciones entre el dispositivo de puerta de enlace IoT Edge y el dispositivo de nivel inferior.
- Propiedades de la nube que no están almacenadas en el dispositivo IoT Edge.
- Vistas y formularios de dispositivos.
- La capacidad de aprovisionar dispositivos IoT Edge a gran escala mediante el servicio de aprovisionamiento de dispositivos de Azure IoT.
- Reglas y acciones.
- Análisis y paneles personalizados.
- Exportación de datos continua de telemetría desde dispositivos IoT Edge.
Un dispositivo IoT Edge puede ser:
- Un dispositivo independiente compuesto de módulos personalizados.
- un dispositivo de puerta de enlace con dispositivos de nivel inferior que se conectan a él. Un dispositivo de puerta de enlace puede incluir módulos personalizados.
Dispositivos IoT Edge e IoT Central
Los dispositivos IoT Edge pueden usar tokens de firma de acceso compartido o certificados X.509 para autenticarse con IoT Central. Puede registrar manualmente los dispositivos IoT Edge en IoT Central antes de que se conecten por primera vez, o bien usar Device Provisioning Service para controlar el registro. Para más información, consulte Conexión de dispositivos.
IoT Central usa opcionalmente plantillas de dispositivo para definir el modo en que interactúa con un dispositivo. Por ejemplo, una plantilla de dispositivo especifica:
- Los tipos de telemetría y propiedades que envía un dispositivo IoT Edge para que IoT Central pueda interpretarlos y crear visualizaciones.
- Los comandos a los que responde un dispositivo IoT Edge, de forma que IoT Central puede mostrar una interfaz de usuario para que un operador la use para llamar a los comandos.
Si no hay ninguna plantilla de dispositivo asociada a un dispositivo, los valores de telemetría y propiedad se muestran como datos sin modelar. Sin embargo, todavía puede usar las funcionalidades de exportación de datos de IoT Central para reenviar los valores de telemetría y propiedad a otros servicios de back-end.
Manifiestos de implementación de IoT Edge
En IoT Edge, puede implementar y administrar la lógica de negocios en forma de módulos. Los módulos de IoT Edge son la unidad más pequeña de cálculo que administra IoT Edge y pueden contener servicios de Azure, como Azure Stream Analytics, o su propio código específico de la solución.
En un manifiesto de implementación de IoT Edge se enumeran los módulos de IoT Edge que se van a implementar en el dispositivo y cómo configurarlos.
En Azure IoT Central, vaya a Manifiestos de Edge para importar y administrar los manifiestos de implementación de los dispositivos IoT Edge de la solución.
El siguiente fragmento de código muestra un ejemplo del manifiesto de implementación de IoT Edge:
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.0.9",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.0.9",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.0",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}
En el fragmento de código anterior, puede ver:
- Hay tres módulos. Los módulos del sistema de agente de IoT Edge y de centro de IoT Edge presentes en cada manifiesto de implementación. El módulo SimulatedTemperatureSensor personalizado.
- Las imágenes del módulo público se extraen de un repositorio de Azure Container Registry que no requiere credenciales para conectarse. Para las imágenes de módulo privado, establezca las credenciales del registro de contenedor que se usarán en la
registryCredentials
configuración del módulo de agente de IoT Edge. - El módulo SimulatedTemperatureSensor personalizado tiene dos propiedades:
"SendData": true
y"SendInterval": 10
.
En la captura de pantalla siguiente se muestra este manifiesto de implementación importado en IoT Central:
Si la aplicación usa organizaciones, puede asignar los manifiestos de implementación a organizaciones específicas. En la captura de pantalla anterior se muestra el manifiesto de implementación asignado a la organización Store Manager /Americas.
Para aprender a usar la página Manifiestos de Edge y asignar manifiestos de implementación a dispositivos IoT Edge, consulte Administración de manifiestos de implementación de IoT Edge en la aplicación de IoT Central.
Administración de un dispositivo sin asignar
Un dispositivo IoT Edge que no tiene una plantilla de dispositivo asociada se conoce como dispositivo sin asignar. No puede usar características de IoT Central, como paneles, grupos de dispositivos, análisis, reglas y trabajos, con dispositivos sin asignar. Sin embargo, puede usar las siguientes funcionalidades con dispositivos sin asignar:
- Ver datos sin procesar, como telemetría y propiedades.
- Llamar a comandos de dispositivo.
- Leer y escribir propiedades.
También puede administrar módulos individuales en dispositivos sin asignar:
Plantillas de dispositivo de IoT Edge
Las plantillas de dispositivo de IoT Central usan modelos para describir las funcionalidades de los dispositivos IoT Edge. Las plantillas de dispositivo son opcionales para dispositivos IoT Edge. La plantilla de dispositivo permite interactuar con telemetría, propiedades y comandos mediante funcionalidades de IoT Central, como paneles y análisis. En el diagrama siguiente se muestra la estructura del modelo de un dispositivo IoT Edge:
IoT Central modela un dispositivo IoT Edge de la siguiente manera:
- Cada plantilla de dispositivo IoT Edge tiene un modelo de funcionalidad.
- Para cada módulo personalizado que aparezca en el manifiesto de implementación, agregue una definición de módulo si quiere usar IoT Central para interactuar con ese módulo.
- Un modelo de funcionalidad del módulo implementa una o varias interfaces de módulo.
- Cada interfaz del módulo contiene datos de telemetría, propiedades y comandos.
Puede generar el modelo de funcionalidad básica basado en los módulos y propiedades definidos en el manifiesto del dispositivo. Para más información, consulte Adición de módulos y propiedades a plantillas de dispositivo.
Patrones de puerta de enlace de IoT Edge
IoT Central admite estos patrones de dispositivos IoT Edge:
IoT Edge como puerta de enlace transparente
Los dispositivos de nivel inferior se conectan a IoT Central a través de la puerta de enlace con su propia identidad.
El dispositivo IoT Edge se aprovisiona en IoT Central junto con los dispositivos de nivel inferior conectados al dispositivo IoT Edge. Actualmente, no se admite la compatibilidad en tiempo de ejecución para aprovisionar dispositivos de nivel inferior a través de la puerta de enlace.
El módulo del centro de IoT Edge se comporta como IoT Central y controla las conexiones desde dispositivos registrados en IoT Central. Los mensajes pasan de los dispositivos de nivel inferior a IoT Central como si no hubiera ninguna puerta de enlace entre ellos. En una puerta de enlace transparente no se pueden usar módulos personalizados para manipular los mensajes de los dispositivos de nivel inferior.
Nota:
IoT Central actualmente no admite la conexión de un dispositivo IoT Edge como dispositivo de bajada a una puerta de enlace transparente de IoT Edge. Esto se debe a que todos los dispositivos que se conectan a IoT Central se aprovisionan mediante el Device Provisioning Service (DPS - Servicio de aprovisionamiento de dispositivos), y el DPS no admite actualmente escenarios de IoT Edge anidados.
IoT Edge como puerta de enlace de traducción de protocolos
Este patrón le permite conectar dispositivos que no pueden usar ninguno de los protocolos que admite IoT Central.
El dispositivo IoT Edge se aprovisiona en IoT Central y cualquier telemetría de todos los dispositivos de nivel inferior se representa como proveniente del dispositivo IoT Edge. Los dispositivos de nivel inferior conectados al dispositivo IoT Edge no se aprovisionan en IoT Central.
IoT Edge como puerta de enlace de traducción de identidades
Los dispositivos de nivel inferior se conectan a un módulo en la puerta de enlace que proporciona identidades de dispositivo de IoT Central para ellos.
El dispositivo IoT Edge se aprovisiona en IoT Central junto con los dispositivos de nivel inferior conectados al dispositivo IoT Edge. Actualmente, IoT Central no tiene compatibilidad en tiempo de ejecución para que una puerta de enlace proporcione una identidad y aprovisione dispositivos del flujo descendente. Si aporta su propio módulo de traducción de identidades, IoT Central puede admitir este patrón.
Relaciones de dispositivo de nivel inferior con una puerta de enlace y módulos
Si los dispositivos de nivel inferior se conectan a un dispositivo de puerta de enlace IoT Edge a través del módulo del centro de IoT Edge, el dispositivo IoT Edge es una puerta de enlace transparente:
Si los dispositivos de nivel inferior se conectan a un dispositivo de puerta de enlace IoT Edge a través de un módulo personalizado, el dispositivo IoT Edge es una puerta de enlace de traducción. En el ejemplo siguiente, los dispositivos de nivel inferior se conectan a través de un módulo personalizado Modbus que realiza la traducción del protocolo:
En el diagrama siguiente se muestran las conexiones a un dispositivo de puerta de enlace IoT Edge mediante ambos tipos de módulos. En este escenario, el dispositivo IoT Edge es una puerta de enlace transparente y de traducción:
Los dispositivos de nivel inferior se pueden conectar a un dispositivo de puerta de enlace IoT Edge mediante varios módulos personalizados. En el diagrama siguiente se muestran los dispositivos de nivel inferior que se conectan mediante un módulo personalizado de Modbus, un módulo personalizado de BLE y el módulo del centro de IoT Edge:
Para obtener más información acerca de los patrones de puerta de enlace de IoT Edge, consulte Uso de un dispositivo IoT Edge como puerta de enlace.
Implementación del entorno de ejecución de IoT Edge
Para obtener información sobre dónde puede ejecutar el entorno de ejecución de IoT Edge, consulte Sistemas compatibles con Azure IoT Edge.
También puede instalar el entorno de ejecución de Azure IoT Edge en los siguientes entornos:
- Instalación o desinstalación de Azure IoT Edge para Linux
- Instalación y aprovisionamiento de Azure IoT Edge para Linux en un dispositivo Windows (versión preliminar)
- Ejecución de Azure IoT Edge en máquinas virtuales Ubuntu en Azure.
Supervisión de los dispositivos IoT Edge
Para obtener información sobre cómo supervisar de forma remota la flota IoT Edge, consulte Recopilación y transporte de métricas.
Pasos siguientes
El siguiente paso recomendado es aprender a desarrollar sus propios módulos de IoT Edge.