Compartir a través de


Tutorial: Envío de telemetría de activos a la nube mediante un flujo de datos

En este tutorial, usará un flujo de datos para reenviar mensajes del corredor MQTT a un centro de eventos en el servicio Azure Event Hubs. El centro de eventos puede entregar los datos a otros servicios en la nube para el almacenamiento y análisis. En el siguiente tutorial, va a utilizar un panel en tiempo real para visualizar los datos.

Requisitos previos

Antes de comenzar este tutorial, debe completar el Tutorial: Incorporación de activos de OPC UA al clúster de Operaciones de IoT de Azure.

¿Qué problema resolveremos?

Para usar una herramienta como panel en tiempo real para analizar los datos de OPC UA, debe enviar los datos a un servicio en la nube, como Azure Event Hubs. Un flujo de datos puede suscribirse a un tema MQTT y reenviar los mensajes a un centro de eventos en el espacio de nombres de Azure Event Hubs. En el siguiente tutorial, se muestra cómo usar paneles en tiempo real para visualizar y analizar los datos.

Establecimiento de las variables de entorno

Si usa el entorno Codespaces, las variables de entorno necesarias ya están establecidas y puede omitir este paso. De lo contrario, establezca las siguientes variables de entorno en el shell:

# The name of the resource group where your Kubernetes cluster is deployed
RESOURCE_GROUP=<resource-group-name>

# The name of your Kubernetes cluster
CLUSTER_NAME=<kubernetes-cluster-name>

Creación de un espacio de nombres de Event Hubs

Para crear un espacio de nombres de Event Hubs y un centro de eventos, ejecute los siguientes comandos de la CLI de Azure en el shell. Estos comandos crean el espacio de nombres de Event Hubs en el mismo grupo de recursos que el clúster de Kubernetes:

az eventhubs namespace create --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP --disable-local-auth false

az eventhubs eventhub create --name destinationeh --resource-group $RESOURCE_GROUP --namespace-name ${CLUSTER_NAME:0:24} --retention-time 1 --partition-count 1 --cleanup-policy Delete

Para conceder a la extensión Operaciones de IoT de Azure del clúster el acceso al espacio de nombres de Event Hubs, ejecute los siguientes comandos de la CLI de Azure:

EVENTHUBRESOURCE=$(az eventhubs namespace show --resource-group $RESOURCE_GROUP --namespace-name ${CLUSTER_NAME:0:24} --query id -o tsv)

PRINCIPAL=$(az k8s-extension list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type connectedClusters -o tsv --query "[?extensionType=='microsoft.iotoperations'].identity.principalId")

az role assignment create --role "Azure Event Hubs Data Sender" --assignee $PRINCIPAL --scope $EVENTHUBRESOURCE

Creación de un flujo de datos para enviar telemetría a un centro de eventos

Use la interfaz de usuario de la experiencia de operaciones para crear y configurar un flujo de datos en el clúster que:

  • Cambia el nombre del campo Tag 10 del mensaje entrante a Humidity.
  • Cambia el nombre del campo temperature del mensaje entrante a Temperature.
  • Agrega un campo denominado AssetId, que contiene el nombre del activo.
  • Reenvía los mensajes transformados del tema MQTT al centro de eventos que ha creado.

Para crear el flujo de datos:

  1. Vaya a la interfaz de usuario de la experiencia de operaciones y busque la instancia. Después, seleccione Puntos de conexión de flujo de datos y seleccione + Nuevo en el icono de Azure Event Hubs:

    Recorte de pantalla de la página Puntos de conexión de flujo de datos.

  2. En Crear nuevo punto de conexión de flujo de datos: Azure Event Hubs, escriba event-hubs-target como nombre y actualice el campo Host con la dirección del espacio de nombres de Event Hubs que ha creado. Seleccione Aplicar.

    Recorte de pantalla de la página Crear un nuevo punto de conexión de flujo de datos: Azure Event Hubs.

    Se crea el nuevo punto de conexión de flujo de datos y se muestra en la lista de la página Puntos de conexión de flujo de datos.

  3. Seleccione Flujos de datos y, a continuación, seleccione + Crear flujo de datos. La página <new-dataflow> muestra:

    Recorte de pantalla de la página Flujos de datos.

  4. En el editor de flujo de datos, seleccione Seleccionar origen. A continuación, seleccione el activo termostato que ha creado anteriormente y seleccione Aplicar.

  5. En el editor de flujo de datos, seleccione Seleccionar punto de conexión de flujo de datos. A continuación, seleccione el punto de conexión event-hubs-target que ha creado anteriormente y seleccione Aplicar.

  6. En la página siguiente, escriba destinationeh como tema. El tema hace referencia al centro que ha creado en el espacio de nombres de Event Hubs. Seleccione Aplicar. El flujo de datos ahora tiene el activo termostato como su origen y un centro en el espacio de nombres de Event Hubs como destino.

  7. Para agregar una transformación, seleccione Agregar transformación (opcional).

  8. Para cambiar el nombre de los campos Tag 10 y temperature en el mensaje entrante, seleccione + Agregar en el icono Cambiar nombre.

  9. Agregue las dos transformaciones de cambio de nombre siguientes:

    Punto de datos Nuevo nombre de punto de datos
    Etiqueta 10.Value ThermostatHumidity
    temperature.Value ThermostatTemperature
  10. Para copiar el identificador de recurso de los metadatos del mensaje, agregue la siguiente transformación de cambio de nombre:

    Punto de datos Nuevo nombre de punto de datos
    $metadata.user_property.externalAssetId AssetId

    La transformación de cambio de nombre tiene el siguiente aspecto:

    Recorte de pantalla de la transformación de cambio de nombre.

    Seleccione Aplicar.

  11. El editor de flujos de datos ahora tiene el siguiente aspecto:

    Recorte de pantalla del flujo de datos completado.

  12. Para iniciar el flujo de datos en ejecución, escriba tutorial-dataflow como su nombre y seleccione Guardar. Después de unos minutos, el estado de aprovisionamiento cambia a Correcto. El flujo de datos se está ejecutando ahora en el clúster.

El flujo de datos se suscribe a un tema MQTT para recibir mensajes del activo termostato. Cambia el nombre de algunos de los campos del mensaje y reenvía los mensajes transformados al centro de eventos que ha creado.

Comprobar que los datos fluyan

Para comprobar que los datos fluyen a la nube, puede ver la instancia de Event Hubs en Azure Portal. Es posible que tenga que esperar varios minutos para que el flujo de datos se inicie y para que los mensajes fluyan al centro de eventos.

Si los mensajes fluyen a la instancia, puede ver el recuento de mensajes entrantes en la página Información general de la instancia:

Recorte de pantalla en el que se muestra la página de información general de la instancia de Event Hubs con mensajes entrantes.

Si los mensajes fluyen, puede usar el Explorador de datos para ver los mensajes:

Recorte de pantalla de la página **Explorador de datos** de la instancia de Event Hubs.

Sugerencia

Es posible que tenga que asignarse al rol Receptor de datos de Azure Event Hubs para el espacio de nombres de Event Hubs para ver los mensajes.

¿Cómo solucionamos el problema?

En este tutorial, ha usado un flujo de datos para conectar un tema MQTT a un centro de eventos en el espacio de nombres de Azure Event Hubs. En el siguiente tutorial, va a utilizar la inteligencia en tiempo real de Microsoft Fabric para visualizar los datos.

Limpieza de recursos

Si continúa con el siguiente tutorial, mantenga todos los activos.

Si quiere eliminar la implementación de Operaciones de IoT de Azure, pero quiere mantener el clúster, use el comando az iot ops delete:

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

Si quiere eliminar todos los recursos que ha creado para este inicio rápido, elimine el clúster de Kubernetes donde ha implementado Operaciones de IoT de Azure y quite el grupo de recursos de Azure que contenía el clúster.

Si usó Codespaces para estas guías de inicio rápido, elimine Codespace de GitHub.

Nota:

El grupo de activos contiene el espacio de nombres de Event Hubs que ha creado en este tutorial.

Paso siguiente

Tutorial: Obtención de información de telemetría de activos