Freigeben über


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 in Humidity um.
  • Benennt das Feld temperature in der eingehenden Nachricht in Temperature 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

  1. 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:

    Screenshot der Seite „Datenflowendpunkte“.

  2. 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:

    Screenshot der Seite „Neuen Dataflowendpunkt erstellen: Azure Event Hubs“.

    Ihr neuer Dataflowendpunkt wird erstellt und in der Liste auf der Seite Dataflowendpunkte angezeigt.

  3. Wählen Sie Dataflows und dann + Dataflow erstellen aus. Die Seite <Neuer Dataflow> wird angezeigt:

    Screenshot der Seite „Dataflows“.

  4. Wählen Sie im Dataflow-Editor Quelle auswählen aus. Wählen Sie dann die zuvor erstellte Thermostat-Ressource und anschließend Übernehmen aus.

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

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

  7. Um eine Transformation hinzuzufügen, wählen Sie Transformation hinzufügen (optional) aus.

  8. Um die Felder Tag 10 und temperature in der eingehenden Nachricht umzubenennen, wählen Sie + Hinzufügen in der Kachel Umbenennen aus.

  9. Fügen Sie die folgenden beiden Umbenennungstransformationen hinzu:

    Datenpunkt Neuer Datenpunktname
    Tag 10.Value ThermostatHumidity
    temperature.Value ThermostatTemperature
  10. 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:

    Screenshot der Umbenennungstransformation.

    Wählen Sie Übernehmen.

  11. Der Dataflow-Editor sieht nun wie der folgende Screenshot aus:

    Screenshot: abgeschlossener Dataflow.

  12. 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:

Screenshot: Seite „Übersicht“ der Event Hubs-Instanz mit eingehenden Nachrichten.

Wenn Nachrichten fließen, können Sie den Daten-Explorer verwenden, um die Nachrichten anzuzeigen:

Screenshot: Seite **Daten-Explorer** der Event Hubs-Instanz.

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