Freigeben über


Tutorial: Senden von Ressourcentelemetriedaten in die Cloud mithilfe eines Datenflusses

In diesem Tutorial verwenden Sie einen Datenfluss, 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 Datenfluss 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 Datenflusses zum Senden von Telemetriedaten an einen Event Hub

Verwenden Sie die Einsatz-Benutzeroberfläche, um einen Datenfluss in Ihrem Cluster zu erstellen und zu konfigurieren, der Folgendes ausführt:

  • Benennt das Feld temperature in der eingehenden Nachricht in TemperatureF 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 Datenfluss

  1. Navigieren Sie zur Einsatz-Benutzeroberfläche, und suchen Sie Ihre Instanz. Wählen Sie dann Datenflusspunkte und anschließend + Neu auf der Kachel Azure Event Hubs aus:

    Screenshot der Seite „Datenflussendpunkte“.

  2. Geben Sie unter Neuen Datenflussendpunkt erstellen: Azure Event Hubs als Namen 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 Datenflussendpunkt erstellen: Azure Event Hubs“.

    Der neue Datenflussendpunkt wird erstellt und in der Liste auf der Seite Datenflussendpunkte angezeigt.

  3. Wählen Sie Datenflüsse und dann + Datenfluss erstellen aus. Die Seite <new-data-flow> wird angezeigt:

    Screenshot der Seite „Datenflüsse“.

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

  5. Wählen Sie im Datenfluss-Editor Datenflussendpunkt auswählen aus. Wählen Sie dann den zuvor erstellten Endpunkt event-hubs-target und anschließend Fortfahren 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. Der Datenfluss weist nun die Thermostatressource 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 das Feld temperature in der eingehenden Nachricht umzubenennen, wählen Sie + Hinzufügen auf der Kachel Umbenennen aus.

  9. Fügen Sie die folgende Umbenennungstransformation hinzu:

    Datenpunkt Neuer Datenpunktname
    temperature.Value ThermostatTemperatureF
  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 Datenfluss-Editor sieht nun wie der folgende Screenshot aus:

    Screenshot des abgeschlossenen Datenflusses.

  12. Um die Ausführung des Datenflusses zu starten, geben Sie tutorial-data-flow als Namen ein, und wählen Sie dann Speichern aus. Nach ein paar Minuten ändert sich der Bereitstellungsstatus in Erfolgreich. Der Datenfluss wird jetzt in Ihrem Cluster ausgeführt.

Der Datenfluss abonniert ein MQTT-Thema, um Nachrichten von der Thermostatressource 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 Datenfluss 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 Datenfluss 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