Tutorial: Implementación de Azure Stream Analytics como un módulo de IoT Edge

Se aplica a:marca de verificación de IoT Edge 1.4 IoT Edge 1.4

Importante

IoT Edge 1.4 es la versión admitida. Si está en una versión anterior, consulte Actualización de IoT Edge.

En este tutorial se crea un trabajo de Azure Stream Analytics en Azure Portal y, después, implementarlo como un módulo de IoT Edge sin código adicional.

Aprenderá a:

  • Crear un trabajo de Azure Stream Analytics para procesar los datos en los dispositivos perimetrales.
  • Conectar el trabajo de Azure Stream Analytics nuevo con otros módulos de IoT Edge.
  • Implemente el trabajo de Azure Stream Analytics en un dispositivo IoT Edge desde Azure Portal.

Diagrama de la arquitectura de flujo, en el que se muestra el almacenamiento provisional y la implementación de un trabajo de Azure Stream Analytics.

El módulo de Stream Analytics de este tutorial calcula la temperatura media en una ventana gradual de 30 segundos. Cuando dicho promedio alcanza el valor de 70, el módulo envía una alerta para que el dispositivo tome medidas. En este caso, esa acción es restablecer el sensor de temperatura simulado. En un entorno de producción, podría usar esta funcionalidad para apagar una máquina o tomar medidas preventivas cuando la temperatura alcance niveles peligrosos.

¿Por qué usar Azure Stream Analytics en IoT Edge?

Muchas soluciones de IoT usan servicios de análisis para obtener información sobre los datos a medida que llegan a la nube desde los dispositivos IoT. Con Azure IoT Edge, puede tomar la lógica de Azure Stream Analytics y llevarla al propio dispositivo. Al procesar los flujos de telemetría en el perímetro, puede reducir la cantidad de datos cargados y reducir el tiempo que se tarda en reaccionar ante la información procesable. Azure IoT Edge y Azure Stream Analytics se integran para simplificar el desarrollo de cargas de trabajo.

Azure Stream Analytics proporciona una sintaxis de consulta con una estructura compleja para el análisis de datos, tanto en la nube como en los dispositivos IoT Edge. Para obtener más información, vea Documentación de Azure Stream Analytics.

Prerrequisitos

Si no tiene una suscripción a Azure, cree una cuenta gratuita de Azure antes de empezar.

  • Un dispositivo de Azure IoT Edge.

    Puede usar una máquina de Azure como dispositivo de IoT Edge; para ello, siga los pasos que se indican en el artículo de inicio rápido para dispositivos Linux o Windows.

  • Una instancia de IoT Hub de nivel estándar o gratis en Azure.

Creación de un trabajo de Azure Stream Analytics

En esta sección, se crea un trabajo de Azure Stream Analytics que realiza estos pasos:

  • Recepción de datos desde el dispositivo IoT Edge.
  • Consulta de los datos de telemetría para identificar valores que estén fuera de un intervalo específico.
  • Acciones en el dispositivo IoT Edge según los resultados de la consulta.

Crear una cuenta de almacenamiento

Cuando se crea un trabajo de Azure Stream Analytics para ejecutarse en un dispositivo de IoT Edge, se debe almacenar de forma que se pueda llamar desde el dispositivo. Puede usar una cuenta de Azure Storage o crear una nueva ahora.

  1. En Azure Portal, vaya a Crear un recurso>Almacenamiento>Cuenta de almacenamiento.

  2. Especifique los siguientes valores para crear una cuenta de almacenamiento:

    Campo Value
    Suscripción Elija la misma suscripción que IoT Hub.
    Resource group Se recomienda usar el mismo grupo de recursos para todos los recursos de prueba en las guías de inicio rápido y los tutoriales de IoT Edge. Por ejemplo, IoTEdgeResources.
    Nombre Especifique un nombre único para la cuenta de almacenamiento.
    Location Elija una ubicación cercana a usted.
  3. No modifique los valores predeterminados en el resto de los campos y seleccione Revisar y crear.

  4. Revise la configuración y seleccione Crear.

Crear un trabajo

  1. En Azure Portal, seleccione:

    1. Creación de un recurso
    2. Internet de las cosas desde el menú de la izquierda
    3. Escriba Stream Analytics en la barra de búsqueda para encontrarlo en Marketplace.
    4. Seleccione Crear y, después, trabajo de Stream Analytics en el menú desplegable.

    Captura de pantalla que muestra dónde encontrar el servicio de trabajo de Stream Analytics en Marketplace y dónde crear un nuevo trabajo.

  2. Especifique los valores siguientes para crear el nuevo trabajo de Stream Analytics:

    Campo Valor
    Nombre Especifique el nombre del trabajo. Por ejemplo, IoTEdgeJob
    Suscripción Elija la misma suscripción que IoT Hub.
    Resource group Se recomienda usar el mismo grupo de recursos que para todos los recursos de prueba que se creen en los tutoriales e inicios rápidos de IoT Edge. Por ejemplo, un recurso llamado IoTEdgeResources.
    Region Elija una ubicación cercana a usted.
    Entorno de hospedaje Seleccionar Edge. Esta opción significa que la implementación va a un dispositivo IoT Edge, en lugar de hospedarse en la nube.
  3. Seleccione Revisar + crear.

  4. Confirme las opciones y, después, seleccione Crear.

Configuración del trabajo

Una vez que el trabajo de Stream Analytics se ha creado en Azure Portal, puede configurarlo con una entrada, una salida y una consulta para ejecutarlo en los datos que lo atraviesen.

En esta sección se crea un trabajo que recibe datos de temperatura de un dispositivo IoT Edge. Analiza dichos datos en una ventana de 30 segundos con desplazamiento. Si la temperatura media en dicha ventana supera los 70 grados, se envía una alerta al dispositivo IoT Edge.

Nota

En la siguiente sección, Configuración de IoT Edge, se especifica exactamente de dónde proceden los datos y a dónde se dirigen al implementar el trabajo.

Establecimiento de la entrada y salida

  1. Vaya al trabajo de Stream Analytics en Azure Portal.

  2. En Topología de trabajo, seleccione Entradas y, después, Agregar entrada.

    Captura de pantalla que muestra dónde agregar la entrada de flujo en Azure Portal.

  3. Elija Centro de Microsoft Edge en la lista desplegable.

    Si no ve la opción Centro de Microsoft Edge en la lista, es posible que haya creado el trabajo de Stream Analytics como un trabajo hospedado en la nube. Pruebe a crear un nuevo trabajo y asegúrese de seleccionar Edge como entorno de hospedaje.

  4. En el panel Nueva entrada, escriba Temperatura en Alias de entrada.

  5. Mantenga los valores predeterminados en los restantes campos y seleccione Guardar.

  6. En Topología de trabajo, abra Salidas y seleccione Agregar.

    Captura de pantalla que muestra dónde agregar la salida de flujo en Azure Portal.

  7. Elija Centro de Microsoft Edge en la lista desplegable.

  8. En el panel Nueva salida, escriba alerta como alias de salida.

  9. Mantenga los valores predeterminados en los restantes campos y seleccione Guardar.

Creación de una consulta

  1. En Topología de trabajo, seleccione Consulta.

  2. Reemplace el texto predeterminado por la siguiente consulta.

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    En esta consulta, el código SQL envía un comando de restablecimiento a la salida de la alerta si la temperatura media de la máquina en una ventana de 30 segundos alcanza los 70 grados. El comando de restablecimiento se ha programado previamente en el sensor como una acción que se puede realizar.

  3. Seleccione Guardar consulta.

Configuración de los valores de IoT Edge

Para preparar el trabajo de Stream Analytics que se va a implementar en un dispositivo IoT Edge, es preciso asociar el trabajo de Azure Stream Analytics con una cuenta de almacenamiento. Al implementar el trabajo, la definición del trabajo se exporta a la cuenta de almacenamiento en forma de contenedor.

  1. En el servicio Stream Analytics, en el menú Configuración, seleccione Configuración de cuenta de almacenamiento.

  2. Elija la opción Select Blob storage/ADLS Gen 2 from your subscriptions (Seleccionar Blob Storage/ADLS Gen 2 de sus suscripciones).

  3. La cuenta de Azure Storage se muestra automáticamente en la página. Si no la ve, asegúrese de crear un almacenamiento. O bien, si necesita elegir un almacenamiento diferente al que aparece en el campo Cuenta de almacenamiento, selecciónelo en el menú desplegable.

  4. Seleccione Guardar si tuviera que realizar algún cambio.

    Captura de pantalla del lugar en que se agregan cuentas de almacenamiento en el trabajo de Stream Analytics en Azure Portal.

Implementación del trabajo

Ya está listo para implementar el trabajo de Azure Stream Analytics en el dispositivo de IoT Edge.

En esta sección, se usa el asistente de Establecer módulos en Azure Portal para crear un manifiesto de implementación. Un manifiesto de implementación es un archivo JSON que describe todos los módulos que se implementan en un dispositivo. El manifiesto también muestra los registros de contenedores que almacenan las imágenes del módulo, cómo se deben administrar los módulos y la forma en que los módulos pueden comunicarse entre sí. El dispositivo IoT Edge recupera su manifiesto de implementación de IoT Hub y, después, usa su información para implementar y configurar todos los módulos que tiene asignados.

En este tutorial se implementan dos módulos. La primera opción es SimulatedTemperatureSensor, un módulo que simula un sensor de temperatura y humedad. El segundo es su trabajo de Stream Analytics. El módulo del sensor proporciona el flujo de datos que se analiza en la consulta del trabajo.

  1. En Azure Portal, vaya hasta el centro de IoT.

  2. Seleccione Dispositivos en el menú Administración de dispositivos y, después, seleccione el dispositivo IoT Edge para abrirlo.

  3. Seleccione Set modules (Establecer módulos).

  4. Si ha implementado anteriormente el módulo SimulatedTemperatureSensor en este dispositivo, puede que el campo se rellene automáticamente. Si no lo hace, siga estos pasos para agregar el módulo:

    1. Seleccione + Agregar y elija Módulo IoT Edge.
    2. En el nombre, escriba SimulatedTemperatureSensor.
    3. Para el identificador URI de la imagen, escriba mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.
    4. Deje los restantes valores predeterminados y seleccione Agregar.
  5. Agregue el trabajo de Edge de Azure Stream Analytics con los siguientes pasos:

    1. Seleccione + Agregar y elija Módulo de Azure Stream Analytics.
    2. Seleccione la suscripción y el trabajo Edge de Azure Stream Analytics que creó.
    3. Seleccione Guardar.

    Después de guardar los cambios, los detalles del trabajo de Stream Analytics se publicarán en el contenedor de almacenamiento que ha creado.

  6. Cuando finalice la implementación de la adición de Stream Analytics, confirme que aparecen dos módulos nuevos en la página Establecer módulos.

    Captura de pantalla que confirma que hay dos módulos nuevos en el dispositivo. La captura de pantalla también muestra dónde se encuentra el botón Revisar y crear.

  7. Seleccione Revisar + crear. Aparece el manifiesto de implementación.

  8. Seleccione Crear.

  9. En la página Establecer módulos del dispositivo, al cabo de unos minutos, debería ver los módulos enumerados y en ejecución. Actualice la página si no ve ningún módulo, o bien espere unos minutos más y vuelva a actualizarla.

    Captura de pantalla que muestra la lista de módulos del dispositivo en el Azure Portal.

Descripción de los dos nuevos módulos

  1. En la pestaña Establecer módulos del dispositivo, seleccione el nombre del módulo de Stream Analytics e irá a la página Actualizar módulo de IoT Edge. Aquí puede actualizar la configuración.

    La pestaña Configuración tiene el identificador URI de la imagen que apunta a una imagen estándar de Azure Stream Analytics. Esta imagen se usa para todos los módulos de Stream Analytics que se implementen en un dispositivo IoT Edge.

    En la pestaña Configuración de módulos gemelos se muestra el JSON que define la propiedad de Azure Stream Analytics (ASA) llamada ASAJobInfo. El valor de dicha propiedad apunta a la definición del trabajo en el contenedor de almacenamiento. Esta propiedad indica cómo se configura la imagen de Stream Analytics con la información específica de su trabajo.

    De forma predeterminada, el módulo de Stream Analytics usa el mismo nombre que el trabajo en el que se basa. Si lo prefiere, puede cambiar el nombre del módulo en esta página, pero no es necesario.

  2. Seleccione Aplicar si realizó algún cambio o Cancelar si no lo hizo.

Asignación de rutas a los módulos

  1. En la página Establecer módulos en dispositivo:<nombre del dispositivo>, seleccione Siguiente: Rutas.

  2. En la pestaña Rutas, se define cómo se pasan los mensajes entre los módulos de IoT Hub. Los mensajes se construyen mediante pares de nombre-valor.

    Agregue los nombres y valores de ruta por los pares que se muestran en la siguiente tabla. Reemplace las instancias de {moduleName} por el nombre del módulo de Azure Stream Analytics. Este módulo debe ser el mismo nombre que se ve en la lista de módulos del dispositivo en la página Establecer módulos, como se muestra en Azure Portal.

    Captura de pantalla que muestra el nombre de los módulos de Stream Analytics en el dispositivo IoT Edge en Azure Portal.

    NOMBRE Value
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    Las rutas que se declaran aquí definen el flujo de datos que atraviesa el dispositivo IoT Edge. Los datos de telemetría de SimulatedTemperatureSensor se envían a IoT Hub y a la entrada de temperatura que se ha configurado en el trabajo de Stream Analytics. Los mensajes de salida de alerta se envían a IoT Hub y al módulo SimulatedTemperatureSensor para desencadenar el comando de restablecimiento.

  3. Seleccione Siguiente: Revisar y crear.

  4. En la pestaña Revisar y crear, puede ver que la información que ha proporcionado en el asistente se ha convertido en un manifiesto de implementación en formato JSON.

  5. Cuando haya terminado de revisar el manifiesto, seleccione Crear para finalizar la configuración del módulo.

Visualización de datos

Ya puede ir a su dispositivo IoT Edge para ver la interacción entre el módulo de Azure Stream Analytics y el módulo SimulatedTemperatureSensor.

Nota

Si usa una máquina virtual para un dispositivo, puede usar Azure Cloud Shell para acceder directamente a todos los servicios autenticados de Azure.

  1. Compruebe que todos los módulos se ejecutan en Docker:

    iotedge list  
    
  2. Vea todos los registros del sistema y datos de métrica. Sustituya {moduleName} por el nombre del módulo de Azure Stream Analytics:

    iotedge logs -f {moduleName}  
    
  3. Vea los registros del sensor para comprobar cómo afecta el comando de restablecimiento al módulo SimulatedTemperatureSensor:

    iotedge logs SimulatedTemperatureSensor
    

    Verá como la temperatura del equipo asciende de forma progresiva hasta que alcanza 70 grados durante 30 segundos. Después, el módulo de Stream Analytics desencadena un restablecimiento y la temperatura de la máquina vuelve a bajar a 21.

    Captura de pantalla que muestra el comando reset en la salida de los registros del módulo.

Limpieza de recursos

Si prevé seguir con el siguiente artículo recomendado, puede mantener los recursos y las configuraciones que ya ha creado y volverlos a utilizar. También puede seguir usando el mismo dispositivo de IoT Edge como dispositivo de prueba.

En caso contrario, para evitar gastos, puede eliminar las configuraciones locales y los recursos de Azure que creó en este artículo.

Eliminación de recursos de Azure

La eliminación de los recursos de Azure y de los grupos de recursos es un proceso irreversible. Asegúrese de no eliminar por accidente el grupo de recursos o los recursos equivocados. Si ha creado el centro de IoT en un grupo de recursos ya existente que tiene recursos que desea conservar, elimine solo el recurso del centro de IoT en sí en lugar de eliminar todo el grupo de recursos.

Para eliminar los recursos:

  1. Inicie sesión en Azure Portal y después seleccione Grupos de recursos.

  2. Seleccione el nombre del grupo de recursos que contiene los recursos de prueba de IoT Edge.

  3. Revise la lista de los recursos contenidos en el grupo de recursos. Si desea eliminar todos ellos, puede seleccionar Eliminar grupo de recursos. Si desea eliminar solo algunos de ellos, puede hacer clic en cada recurso para eliminarlos individualmente.

Pasos siguientes

En este tutorial ha configurado un trabajo de Azure Stream Analytics para analizar datos desde un dispositivo IoT Edge. A continuación, ha cargado este módulo de Azure Stream Analytics en su dispositivo IoT Edge para procesar y reaccionar al aumento de temperatura localmente, así como para enviar el flujo de datos agregado a la nube. Para ver cómo Azure IoT Edge puede crear más soluciones para la empresa, siga con los otros tutoriales.