Tutorial: Senden von Ressourcentelemetriedaten in die Cloud mithilfe eines Dataflows
In diesem Tutorial verwenden Sie einen Dataflow, um Nachrichten vom MQTT-Broker an einen Event Hub im Azure Event Hubs-Dienst weiterzuleiten. Der Event Hub kann die Daten zur Speicherung und Analyse an andere Clouddienste übermitteln. Im nächsten Tutorial verwenden Sie ein Echtzeitdashboard, um die Daten zu visualisieren.
Voraussetzungen
Bevor Sie mit diesem Tutorial beginnen, müssen Sie Tutorial: Hinzufügen von OPC UA-Ressourcen zu Ihrem Cluster für „Azure IoT Einsatz“ abschließen.
Welches Problem werden wir lösen?
Um ein Tool wie das Echtzeitdashboard zum Analysieren Ihrer OPC UA-Daten zu verwenden, müssen Sie die Daten an einen Clouddienst wie Azure Event Hubs senden. Ein Dataflow kann ein MQTT-Thema abonnieren und die Nachrichten an einen Event Hub in Ihrem Azure Event Hubs-Namespace weiterleiten. Das nächste Tutorial zeigt Ihnen, wie Sie Ihre Daten mithilfe von Echtzeitdashboards visualisieren und analysieren können.
Festlegen Ihrer Umgebungsvariablen
Wenn Sie die Codespaces-Umgebung verwenden, sind die erforderlichen Umgebungsvariablen bereits festgelegt, und Sie können diesen Schritt überspringen. Legen Sie andernfalls die folgenden Umgebungsvariablen in Ihrer Shell fest:
# 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>
Erstellen eines Event Hubs-Namespace
Um einen Event Hubs-Namespace und einen Event Hub zu erstellen, führen Sie die folgenden Azure CLI-Befehle in Ihrer Shell aus. Diese Befehle erstellen den Event Hubs-Namespace in derselben Ressourcengruppe wie Ihr Kubernetes-Cluster:
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
Um der Azure IoT Einsatz-Erweiterung in Ihrem Cluster Zugriff auf Ihren Event Hubs-Namespace zu gewähren, führen Sie die folgenden Azure CLI-Befehle aus:
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
Erstellen eines Dataflows zum Senden von Telemetriedaten an einen Event Hub
Verwenden Sie die Einsatz-Benutzeroberfläche, um einen Dataflow in Ihrem Cluster zu erstellen und zu konfigurieren, der Folgendes ausführt:
- Benennt das Feld
Tag 10
in der eingehenden Nachricht inHumidity
um. - Benennt das Feld
temperature
in der eingehenden Nachricht inTemperature
um. - Hinzufügen eines Felds namens
AssetId
, das den Namen der Ressource enthält. - Leitet die transformierten Nachrichten aus dem MQTT-Thema an den von Ihnen erstellten Event Hub weiter.
So erstellen Sie den Dataflow
Navigieren Sie zur Einsatz-Benutzeroberfläche, und suchen Sie Ihre Instanz. Wählen Sie dann Dataflowendpunkte und anschließend + Neu in der Kachel Azure Event Hubs aus:
Geben Sie in Neuen Dataflowendpunkt erstellen: Azure Event Hubs als Name event-hubs-target ein, und aktualisieren Sie das Feld Host mit der Adresse des erstellten Event Hubs-Namespaces. Wählen Sie Übernehmen aus:
Ihr neuer Dataflowendpunkt wird erstellt und in der Liste auf der Seite Dataflowendpunkte angezeigt.
Wählen Sie Dataflows und dann + Dataflow erstellen aus. Die Seite <Neuer Dataflow> wird angezeigt:
Wählen Sie im Dataflow-Editor Quelle auswählen aus. Wählen Sie dann die zuvor erstellte Thermostat-Ressource und anschließend Übernehmen aus.
Wählen Sie im Dataflow-Editor Dataflowendpunkt auswählen aus. Wählen Sie dann den zuvor erstellten Endpunkt event-hubs-target und anschließend Übernehmen aus.
Geben Sie auf der nächsten Seite destinationeh als Thema ein. Das Thema bezieht sich auf den Hub, den Sie im Event Hubs-Namespace erstellt haben. Wählen Sie Übernehmen. Ihr Dataflow weist nun die Thermostat-Ressource als Quelle und einen Hub in Ihrem Event Hubs-Namespace als Ziel auf.
Um eine Transformation hinzuzufügen, wählen Sie Transformation hinzufügen (optional) aus.
Um die Felder
Tag 10
undtemperature
in der eingehenden Nachricht umzubenennen, wählen Sie + Hinzufügen in der Kachel Umbenennen aus.Fügen Sie die folgenden beiden Umbenennungstransformationen hinzu:
Datenpunkt Neuer Datenpunktname Tag 10.Value ThermostatHumidity temperature.Value ThermostatTemperature Um die Objekt-ID aus den Nachrichtenmetadaten zu kopieren, fügen Sie die folgende Umbenennungstransformation hinzu:
Datenpunkt Neuer Datenpunktname $metadata.user_property.externalAssetId AssetId Die Umbenennungstransformation sieht wie der folgende Screenshot aus:
Wählen Sie Übernehmen.
Der Dataflow-Editor sieht nun wie der folgende Screenshot aus:
Um die Ausführung des Dataflows zu starten, geben Sie tutorial-dataflow als Namen ein, und wählen Sie dann Speichern aus. Nach ein paar Minuten ändert sich der Bereitstellungsstatus in Erfolgreich. Der Dataflow wird jetzt in Ihrem Cluster ausgeführt.
Ihr Dataflow abonniert ein MQTT-Thema, um Nachrichten von der Thermostat-Ressource zu erhalten. Er benennt einige der Felder in der Nachricht um und leitet die transformierten Nachrichten an den von Ihnen erstellten Event Hub weiter.
Überprüfen, ob Daten fließen
Um zu überprüfen, ob Daten in die Cloud fließen, können Sie Ihre Event Hubs-Instanz im Azure-Portal anzeigen. Möglicherweise müssen Sie mehrere Minuten warten, bis der Dataflow gestartet wird und Nachrichten zum Event Hub fließen.
Wenn Nachrichten an die Instanz fließen, können Sie die Anzahl eingehender Nachrichten auf der Seite Übersicht der Instanz sehen:
Wenn Nachrichten fließen, können Sie den Daten-Explorer verwenden, um die Nachrichten anzuzeigen:
Tipp
Möglicherweise müssen Sie sich die Rolle Azure Event Hubs-Datenempfänger für den Event Hubs-Namespace zuweisen, um die Nachrichten anzuzeigen.
Wie haben wir das Problem gelöst?
In diesem Tutorial haben Sie einen Dataflow verwendet, um ein MQTT-Thema mit einem Event Hub in Ihrem Azure Event Hubs-Namespace zu verbinden. Im nächsten Tutorial verwenden Sie Microsoft Fabric-Echtzeitintelligenz, um die Daten zu visualisieren.
Bereinigen von Ressourcen
Wenn Sie mit dem nächsten Tutorial fortfahren, sollten Sie alle Ihre Ressourcen beibehalten.
Wenn Sie die Azure IoT Einsatz-Bereitstellung entfernen, aber Ihren Cluster beibehalten möchten, verwenden Sie den Befehl az iot ops delete.
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
Wenn Sie alle im Rahmen dieser Schnellstartanleitung erstellten Ressourcen löschen möchten, löschen Sie den Kubernetes-Cluster, in dem Sie Azure IoT Einsatz bereitgestellt haben, und entfernen Sie dann die Azure-Ressourcengruppe, in der das Cluster enthalten war.
Wenn Sie Codespaces für diese Schnellstarts verwendet haben, löschen Sie Ihren Codespace aus GitHub.
Hinweis
Die Ressourcengruppe enthält den Event Hubs-Namespace, den Sie in diesem Tutorial erstellt haben.
Nächster Schritt
Tutorial: Gewinnen von Erkenntnissen aus Ihren Ressourcentelemetriedaten