Compartir a través de


Tutorial: Envío de mensajes de recursos a la nube mediante un flujo de datos

En este tutorial, va a 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.

Prerrequisitos

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 Microsoft Fabric Real-Time Panel 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 de 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

Asegúrese de que las siguientes variables de entorno están establecidas en el shell:

Sugerencia

Para ver las identidades administradas asignadas al usuario que creó en el grupo de recursos, ejecute el siguiente comando en su shell: az identity list -g $RESOURCE_GROUP -o table

# 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>

# The name of the user-assigned managed identity that you created for cloud connections
USER_ASSIGNED_MI_NAME=<cloud-connection-uami>

Crear 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 true

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 identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query principalId --output tsv)

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

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

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

  • Cambia el nombre del campo temperature del mensaje entrante a TemperatureF.
  • 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 web 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 busque el espacio de nombres de Event Hubs que creó en el campo Host.

  3. Seleccione la identidad administrada asignada por el usuario como método de autenticación. Agregue los valores de identificador de cliente e identificador de inquilino de la identidad administrada asignada al usuario que está utilizando para las conexiones en la nube. Use el siguiente comando de la CLI para enumerar el identificador de cliente y el identificador de inquilino de las identidades administradas asignadas por el usuario en el grupo de recursos: az identity list -g $RESOURCE_GROUP -o table.

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

  5. Seleccione Flujos de datos y, después, + Crear flujo de datos. La página <new-data-flow> muestra:

    Recorte de pantalla de la página de flujo de datos

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

  7. En el editor de flujo de datos, elija 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 elija Aplicar.

  8. 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. Selecciona Aplicar. El flujo de datos ahora tiene el recurso thermostat como su origen y un centro en el espacio de nombres de Event Hubs como destino.

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

  10. Para cambiar el nombre del campo temperature en el mensaje entrante, seleccione + Agregar en el icono Cambiar nombre.

  11. Agregue las transformaciones de cambio de nombre siguientes:

    Punto de datos Nuevo nombre de punto de datos
    temperatura. Valor TemperaturaDelTermostatoF
  12. 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 Identificador de activo

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

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

    Selecciona Aplicar.

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

    Recorte de pantalla del flujo de datos completado

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

El flujo de datos se suscribe a un tema de 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

Puede que necesite asignarse al rol Receptor de datos de Azure Event Hubs en el espacio de nombres Event Hubs para poder ver los mensajes.

¿Cómo solucionamos el problema?

En este tutorial, ha usado un flujo de datos para conectar un tema de 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 los mensajes de recursos