Condividi tramite


Esercitazione: Inviare messaggi dagli asset al cloud usando un flusso di dati

In questa esercitazione si usa un flusso di dati per inoltrare i messaggi dal broker MQTT a un hub eventi nel servizio Hub eventi di Azure. L'hub eventi può recapitare i dati ad altri servizi cloud per l'archiviazione e l'analisi. Nell'esercitazione successiva verrà usato un dashboard in tempo reale per visualizzare i dati.

Prerequisiti

Prima di iniziare questa esercitazione, è necessario completare Esercitazione: Aggiungere asset OPC UA al cluster di Operazioni di Azure IoT.

Che problema sarà risolto?

Per usare uno strumento come Microsoft Fabric Real-Time Dashboard per analizzare i dati OPC UA, è necessario inviare i dati a un servizio cloud, ad esempio Hub eventi di Azure. Un flusso di dati può sottoscrivere un argomento MQTT e inoltrare i messaggi a un hub eventi nello spazio dei nomi di Hub eventi di Azure. L'esercitazione successiva spiega come usare dashboard in tempo reale per visualizzare e analizzare i dati.

Impostare le variabili di ambiente

Assicurarsi che nella shell siano impostate le variabili di ambiente seguenti:

Suggerimento

Per visualizzare le identità gestite assegnate dall'utente create nel gruppo di risorse, eseguire il comando seguente nella 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>

Creare uno spazio dei nomi di Hub eventi

Per creare uno spazio dei nomi di Hub eventi e un hub eventi, eseguire i comandi seguenti dell'interfaccia della riga di comando di Azure nella shell. Questi comandi creano lo spazio dei nomi di Hub eventi nello stesso gruppo di risorse del cluster 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

Per concedere all'estensione di Operazioni di Azure IoT nel cluster l'accesso allo spazio dei nomi di Hub eventi, eseguire i comandi seguenti dell'interfaccia della riga di comando di 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

Creare un flusso di dati per inviare messaggi a un hub eventi

Usare l'interfaccia utente Web dell'esperienza operativa per creare e configurare un flusso di dati nel cluster che:

  • Rinomina il campo temperature nel messaggio in arrivo in TemperatureF.
  • Aggiunge un campo denominato AssetId che contiene il nome dell'asset.
  • Inoltra i messaggi trasformati dall'argomento MQTT all'hub eventi creato.

Per creare il flusso di dati:

  1. Accedere all'interfaccia utente web dell'esperienza operativa e individuare la propria istanza. Selezionare quindi Endpoint del flusso di dati e selezionare + Nuovo nel riquadro Hub eventi di Azure:

    Screenshot della pagina Endpoint del flusso di dati.

  2. Nel Creare un nuovo endpoint di flusso di dati: Azure Event Hubs, immetti event-hubs-target come nome e trova lo spazio dei nomi di Azure Event Hubs che hai creato nel campo Host.

  3. Selezionare l'identità gestita assegnata dall'utente come metodo di autenticazione. Aggiungere i valori di ID client e ID tenant dell'identità gestita assegnata dall'utente che stai utilizzando per le connessioni cloud. Usa il seguente comando CLI per elencare l'ID client e l'ID tenant delle identità gestite assegnate all'utente nel gruppo di risorse: az identity list -g $RESOURCE_GROUP -o table.

  4. Selezionare Applica:

    Screenshot della pagina Crea nuovo endpoint del flusso di dati: Hub eventi di Azure.

    Il nuovo endpoint del flusso di dati viene creato e visualizzato nell'elenco della pagina Endpoint del flusso di dati.

  5. Selezionare Flussi di dati e quindi + Crea flusso di dati. La pagina <new-data-flow> visualizza:

    Screenshot della pagina Flussi di dati.

  6. Nell'editor del flusso di dati selezionare Seleziona origine. Selezionare quindi l'asset termostato creato in precedenza e selezionare Continua.

  7. Nell'editor del flusso di dati selezionare Seleziona destinazione. Selezionare quindi l'endpoint event-hubs-target creato in precedenza e selezionare Continua.

  8. Nella pagina successiva immettere destinationeh come argomento. L'argomento fa riferimento all'hub creato nello spazio dei nomi di Hub eventi. Selezionare Applica. Il flusso di dati include ora l'asset termostato come origine e un hub nello spazio dei nomi di Hub eventi come destinazione.

  9. Per aggiungere una trasformazione, selezionare Aggiungi trasformazione (facoltativo).

  10. Per rinominare il campo temperature nel messaggio in arrivo, selezionare + Aggiungi nel riquadro Rinomina.

  11. Aggiungere la trasformazione di ridenominazione seguente:

    Punto Dati Nuovo nome del punto dati
    temperature.Value TemperaturaDelTermostatoF
  12. Per copiare l'ID risorsa dai metadati del messaggio, aggiungere la trasformazione di ridenominazione seguente:

    Punto Dati Nuovo nome del punto dati
    $metadata.user_property.externalAssetId AssetId

    La trasformazione di ridenominazione è simile alla schermata seguente:

    Screenshot della trasformazione di ridenominazione.

    Selezionare Applica.

  13. L'editor del flusso di dati è ora simile allo screenshot seguente:

    Screenshot del flusso di dati completato.

  14. Per avviare l'esecuzione del flusso di dati, immettere tutorial-data-flow come nome e quindi selezionare Salva. Dopo alcuni minuti, lo stato del provisioning cambia in Operazione riuscita. Il flusso di dati è ora in esecuzione nel cluster.

Il flusso di dati sottoscrive un argomento MQTT per ricevere messaggi dall'asset termostato. Rinomina alcuni campi nel messaggio e inoltra i messaggi trasformati all'hub eventi creato.

Verificare che i dati vengano trasmessi

Per verificare che i dati vengano trasmessi al cloud, è possibile visualizzare l'istanza di Hub eventi nel portale di Azure. Potrebbe essere necessario attendere alcuni minuti prima che il flusso di dati venga avviato e che i messaggi vengano trasmessi all'hub eventi.

Se i messaggi vengono trasmessi all'istanza, è possibile visualizzare il conteggio dei messaggi in arrivo nella pagina Panoramica dell'istanza:

Screenshot che mostra la pagina di panoramica dell'istanza di Hub eventi con i messaggi in arrivo.

Se i messaggi vengono trasmessi, è possibile usare Esplora dati per visualizzare i messaggi:

Screenshot della pagina **Esplora dati** dell'istanza di Hub eventi.

Suggerimento

Potrebbe essere necessario assegnarsi al ruolo Ricevitore dati di Hub eventi di Azure per lo spazio dei nomi di Hub eventi per visualizzare i messaggi.

Come è stato risolto il problema?

In questa esercitazione è stato usato un flusso di dati per connettere un argomento MQTT a un hub eventi nello spazio dei nomi di Hub eventi di Azure. Nell'esercitazione successiva si userà l'intelligence in tempo reale di Microsoft Fabric per visualizzare i dati.

Pulire le risorse

Se si prosegue all'esercitazione successiva, mantenere tutte le risorse.

Se si vuole rimuovere la distribuzione di Operazioni di Azure IoT ma mantenere il cluster, usare il comando az iot ops delete:

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

Per eliminare tutte le risorse create per questo avvio rapido, eliminare il cluster Kubernetes in cui è stato distribuito Operazioni di Azure IoT e quindi rimuovere il gruppo di risorse di Azure che conteneva il cluster.

Se per questi argomenti della guida introduttiva è stato usato Codespaces, eliminare Codespace da GitHub.

Annotazioni

Il gruppo di risorse contiene lo spazio dei nomi di Hub eventi creato in questa esercitazione.

Passo successivo

Esercitazione: Ottenere informazioni dettagliate dai messaggi delle risorse