Esercitazione: Inviare dati di telemetria degli 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 si usa un dashboard in tempo reale per visualizzare i dati.
Prerequisiti
Prima di iniziare questa esercitazione, è necessario completare Esercitazione: Aggiungere asset OPC UA al cluster operazioni IoT di Azure.
Quale problema risolveremo?
Per usare uno strumento come Dashboard in tempo reale 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 illustra come usare dashboard in tempo reale per visualizzare e analizzare i dati.
Impostare le variabili di ambiente
Se si usa l'ambiente Codespaces, le variabili di ambiente necessarie sono già impostate ed è possibile ignorare questo passaggio. In caso contrario, impostare le variabili di ambiente seguenti nella 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>
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 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
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 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
Creare un flusso di dati per inviare dati di telemetria a un hub eventi
Usare l'interfaccia utente dell'esperienza operativa per creare e configurare un flusso di dati nel cluster che:
- Rinomina il
Tag 10
campo nel messaggio in arrivo inHumidity
. - Rinomina il
temperature
campo nel messaggio in arrivo inTemperature
. - 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:
Passare all'interfaccia utente dell'esperienza operativa e individuare l'istanza. Selezionare quindi Endpoint flusso di dati e selezionare + Nuovo nel riquadro Hub eventi di Azure:
In Crea nuovo endpoint del flusso di dati: Hub eventi di Azure immettere event-hubs-target come nome e aggiornare il campo Host con l'indirizzo dello spazio dei nomi di Hub eventi creato. Selezionare Applica:
Il nuovo endpoint del flusso di dati viene creato e visualizzato nell'elenco nella pagina Endpoint flusso di dati.
Selezionare Flussi di dati e quindi + Crea flusso di dati. Viene visualizzata la pagina new-dataflow> :<
Nell'editor del flusso di dati selezionare Seleziona origine. Selezionare quindi l'asset termostato creato in precedenza e selezionare Applica.
Nell'editor del flusso di dati selezionare Selezionare l'endpoint del flusso di dati. Selezionare quindi l'endpoint di destinazione di hub eventi creato in precedenza e selezionare Applica.
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 ha ora l'asset termostato come origine e un hub nello spazio dei nomi di Hub eventi come destinazione.
Per aggiungere una trasformazione, selezionare Aggiungi trasformazione (facoltativo).
Per rinominare i
Tag 10
campi etemperature
nel messaggio in arrivo, selezionare + Aggiungi nel riquadro Rinomina .Aggiungere le due trasformazioni di ridenominazione seguenti:
Datapoint Nuovo nome del punto dati Tag 10.Value TermostatoDità temperatura. Valore ThermostatTemperature Per copiare l'ID risorsa dai metadati del messaggio, aggiungere la trasformazione di ridenominazione seguente:
Datapoint Nuovo nome del punto dati $metadata.user_property.externalAssetId AssetId La trasformazione rename è simile alla schermata seguente:
Selezionare Applica.
L'editor del flusso di dati è ora simile allo screenshot seguente:
Per avviare l'esecuzione del flusso di dati, immettere tutorial-dataflow 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 nella 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:
Se i messaggi vengono trasmessi, è possibile usare il Esplora dati per visualizzare i messaggi:
Suggerimento
Potrebbe essere necessario assegnare se stessi al ruolo ricevitore di dati Hub eventi di Azure per lo spazio dei nomi di Hub eventi per visualizzare i messaggi.
Come abbiamo 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 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 continua con l'esercitazione successiva, mantenere tutte le risorse.
Se si vuole rimuovere la distribuzione di Operazioni IoT di Azure 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 questa guida introduttiva, eliminare il cluster Kubernetes in cui sono state distribuite le operazioni IoT di Azure 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.
Nota
Il gruppo di risorse contiene lo spazio dei nomi di Hub eventi creato in questa esercitazione.
Passaggio successivo
Esercitazione: Ottenere informazioni dettagliate dai dati di telemetria degli asset