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 aHumidity
. - Cambia el nombre del campo
temperature
del mensaje entrante aTemperature
. - 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:
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:
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.
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.
Seleccione Flujos de datos y, a continuación, seleccione + Crear flujo de datos. La página <new-dataflow> muestra:
En el editor de flujo de datos, seleccione Seleccionar origen. A continuación, seleccione el activo termostato que ha creado anteriormente y seleccione Aplicar.
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.
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.
Para agregar una transformación, seleccione Agregar transformación (opcional).
Para cambiar el nombre de los campos
Tag 10
ytemperature
en el mensaje entrante, seleccione + Agregar en el icono Cambiar nombre.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 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:
Seleccione Aplicar.
El editor de flujos de datos ahora tiene el siguiente aspecto:
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:
Si los mensajes fluyen, puede usar el Explorador de datos para ver los mensajes:
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.