Självstudie: Skicka tillgångstelemetri till molnet med hjälp av ett dataflöde
I den här självstudien använder du ett dataflöde för att vidarebefordra meddelanden från MQTT-koordinatorn till en händelsehubb i Azure Event Hubs-tjänsten. Händelsehubben kan leverera data till andra molntjänster för lagring och analys. I nästa självstudie använder du en instrumentpanel i realtid för att visualisera data.
Förutsättningar
Innan du påbörjar den här självstudien måste du slutföra Självstudie: Lägga till OPC UA-tillgångar i ditt Azure IoT Operations-kluster.
Vilket problem kommer vi att lösa?
Om du vill använda ett verktyg som Realtidsinstrumentpanel för att analysera dina OPC UA-data måste du skicka data till en molntjänst som Azure Event Hubs. Ett dataflöde kan prenumerera på ett MQTT-ämne och vidarebefordra meddelandena till en händelsehubb i ditt Azure Event Hubs-namnområde. Nästa självstudie visar hur du använder realtidsinstrumentpaneler för att visualisera och analysera dina data.
Ange miljövariabler
Om du använder Codespaces-miljön har de miljövariabler som krävs redan angetts och du kan hoppa över det här steget. Annars anger du följande miljövariabler i gränssnittet:
# 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>
Skapa ett Event Hubs-namnområde
Om du vill skapa ett Event Hubs-namnområde och en händelsehubb kör du följande Azure CLI-kommandon i gränssnittet. Dessa kommandon skapar Event Hubs-namnområdet i samma resursgrupp som ditt Kubernetes-kluster:
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
Om du vill ge Azure IoT Operations-tillägget i klustret åtkomst till event hubs-namnområdet kör du följande Azure CLI-kommandon:
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
Skapa ett dataflöde för att skicka telemetri till en händelsehubb
Använd användargränssnittet för driftsupplevelse för att skapa och konfigurera ett dataflöde i klustret som:
- Byter namn på fältet
Tag 10
i det inkommande meddelandet tillHumidity
. - Byter namn på fältet
temperature
i det inkommande meddelandet tillTemperature
. - Lägger till ett fält med namnet
AssetId
som innehåller namnet på tillgången. - Vidarebefordrar de transformerade meddelandena från MQTT-ämnet till den händelsehubb som du skapade.
Så här skapar du dataflödet:
Bläddra till användargränssnittet för driftupplevelsen och leta upp din instans. Välj sedan Dataflödesslutpunkter och välj + Nytt i Azure Event Hubs-panelen :
I slutpunkten Skapa nytt dataflöde: Azure Event Hubs anger du event-hubs-target som namn och uppdaterar fältet Värd med adressen för event hubs-namnområdet som du skapade. Välj Använd:
Den nya dataflödesslutpunkten skapas och visas i listan på sidan Dataflödesslutpunkter .
Välj Dataflöden och välj sedan + Skapa dataflöde. Sidan <nytt dataflöde> visar:
I dataflödesredigeraren väljer du Välj källa. Välj sedan termostattillgången som du skapade tidigare och välj Tillämpa.
I dataflödesredigeraren väljer du Välj dataflödesslutpunkt. Välj sedan slutpunkten event-hubs-target som du skapade tidigare och välj Tillämpa.
På nästa sida anger du destinationeh som ämne. Ämnet refererar till den hubb som du skapade i Event Hubs-namnområdet. Välj Använd. Ditt dataflöde har nu termostattillgången som källa och en hubb i Event Hubs-namnområdet som mål.
Om du vill lägga till en transformering väljer du Lägg till transformering (valfritt).
Om du vill byta namn på fälten
Tag 10
ochtemperature
i det inkommande meddelandet väljer du + Lägg till i panelen Byt namn.Lägg till följande två byt namn på transformeringar:
Datapunkt Nytt datapunktsnamn Tagg 10.Value ThermostatHumidity temperatur. Värde ThermostatTemperature Om du vill kopiera tillgångs-ID:t från meddelandemetadata lägger du till följande transformeringsbyte:
Datapunkt Nytt datapunktsnamn $metadata.user_property.externalAssetId AssetId Omvandlingen av namnbytet ser ut som följande skärmbild:
Välj Använd.
Dataflödesredigeraren ser nu ut som följande skärmbild:
Starta dataflödet genom att ange tutorial-dataflow som namn och sedan välja Spara. Efter några minuter ändras etableringstillståndet till Lyckades. Dataflödet körs nu i klustret.
Ditt dataflöde prenumererar på ett MQTT-ämne för att ta emot meddelanden från termostattillgången. Den byter namn på några av fälten i meddelandet och vidarebefordrar de transformerade meddelandena till den händelsehubb som du skapade.
Kontrollera att data flödar
Om du vill kontrollera att data flödar till molnet kan du visa din Event Hubs-instans i Azure Portal. Du kan behöva vänta i flera minuter på att dataflödet ska starta och att meddelanden ska flöda till händelsehubben.
Om meddelanden flödar till instansen kan du se antalet inkommande meddelanden på instansens översiktssida :
Om meddelanden flödar kan du använda Datautforskaren för att visa meddelandena:
Dricks
Du kan behöva tilldela dig själv rollen Azure Event Hubs Data Receiver för Event Hubs-namnområdet för att visa meddelandena.
Hur löste vi problemet?
I den här självstudien använde du ett dataflöde för att ansluta ett MQTT-ämne till en händelsehubb i ditt Azure Event Hubs-namnområde. I nästa självstudie använder du Microsoft Fabric Realtidsinformation för att visualisera data.
Rensa resurser
Om du fortsätter till nästa självstudie behåll alla dina resurser.
Om du vill ta bort Azure IoT Operations-distributionen men behålla klustret använder du kommandot az iot ops delete :
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Om du vill ta bort alla resurser som du skapade för den här snabbstarten tar du bort Kubernetes-klustret där du distribuerade Azure IoT-åtgärder och tar sedan bort azure-resursgruppen som innehöll klustret.
Om du använde Codespaces för dessa snabbstarter tar du bort ditt Codespace från GitHub.
Kommentar
Resursgruppen innehåller event hubs-namnområdet som du skapade i den här självstudien.