Übung: Integrieren von Azure Cosmos DB in die IoT-Datenpipeline
Diese Übung bietet eine Übersicht über das Einrichten der Sammlung sowie die Verarbeitung und Speicherung von IoT-Telemetriedaten, die mithilfe einer Azure IoT Central-Anwendung generiert wurden.
In dieser Übung führen Sie die folgenden Schritte aus:
- Erstellen einer Azure IoT Central-Anwendung
- Erstellen einer Azure-Funktion, die HTTP-Anforderungsnutzdaten protokolliert
- Konfigurieren und Überprüfen von IoT-Telemetrieregeln einer Azure IoT Central-Anwendung
Voraussetzungen
Um diese Übung auszuführen, benötigen Sie Folgendes:
- Ein Microsoft-Konto oder ein Microsoft Entra-Konto mit der Rolle „Globaler Admin“ im Microsoft Entra-Mandanten. Der Mandant muss mit dem Azure-Abonnement und mit der Rolle „Besitzer“ oder „Mitwirkender“ im Azure-Abonnement verbunden sein.
- Zum Abschluss der Übungseinheit Richten Sie Azure Cosmos DB ein.
- Ein aktives Azure-Abonnement. Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen, bevor Sie beginnen.
Erstellen einer Azure IoT Central-Anwendung
Navigieren Sie im Azure-Portal zur Seite IoT Central-Anwendung erstellen. Melden Sie sich nach Aufforderung mit Ihrem Azure-Konto an.
Geben Sie Folgendes ein:
Feld BESCHREIBUNG Subscription Das Azure-Abonnement, das Sie verwenden möchten Resource group Die Ressourcengruppe, die Sie verwenden möchten. Sie können eine neue Ressourcengruppe erstellen oder eine bereits vorhandene Ressourcengruppe verwenden. Ressourcenname Ein gültiger Azure-Ressourcenname, z. B. adatum-iot-custom-application. Anwendungs-URL Eine URL-Unterdomäne für Ihre Anwendung, z. B. adatum-iot-custom-application. Die URL für eine IoT Central-Anwendung sieht wie https://adatum-iot-custom-application.azureiotcentral.com
aus.Vorlage In-Store-Analytics – Bedingungsüberwachung Region Die Azure-Region, die Sie verwenden möchten. Tarif Wählen Sie einen der Standardpreispläne aus. Weitere Informationen zu den Preisen finden Sie unter Azure IoT Central pricing. Klicken Sie auf Überprüfen + erstellen. Klicken Sie anschließend auf Erstellen.
Wenn die App bereit ist, können Sie sie über das Azure-Portal aufrufen:
Tipp
Navigieren Sie zu IoT Central-Anwendungen, um alle IoT Central-Anwendungen aufzulisten, auf die Sie Zugriff haben.
In ein paar Minuten oder weniger wird die Dashboard-Seite angezeigt. Überprüfen Sie die Telemetriedaten und Analysen der Azure IoT Central-Beispielanwendung:
Wählen Sie auf der Seite Dashboard des IoT Central-Anwendungsportals im vertikalen Menü die Option Geräte aus.
Wählen Sie im Abschnitt Thermostat die Option Thermostat-Zone1 aus.
Überprüfen Sie im Bereich Thermostat-Zone1 den Inhalt der Registerkarte Dashboard.
Wählen Sie die Registerkarte Rohdaten aus, und überprüfen Sie den Inhalt.
Erstellen einer Azure-Funktion, die HTTP-Anforderungsnutzdaten protokolliert
In dieser Aufgabe erstellen Sie eine Azure Functions-App, die die HTTP-Webhookfunktion implementiert. Wenden Sie diese Funktion an, um die Telemetriedaten aus der Azure IoT Central-Anwendung weiterzuleiten, indem Sie eine Anwendungsregel erstellen.
Starten Sie einen Webbrowser, navigieren Sie zum Azure-Portal, und melden Sie bei dem Azure-Abonnement an, das Sie für dieses Modul verwenden.
Verwenden Sie das Textfeld Ressourcen, Dienste und Dokumente durchsuchen, um nach Funktions-App zu suchen.
Wählen Sie im Bereich Funktions-App die Option + Erstellen aus.
Konfigurieren Sie auf der Registerkarte Grundlagen die folgenden Einstellungen, und wählen Sie dann Überprüfen + erstellen aus.
Einstellung Konfiguration Subscription Wählen Sie den Namen des Azure-Abonnements aus, das Sie für dieses Modul verwenden. Ressourcengruppe Erstellen Sie eine neue Ressourcengruppe mit dem Namen function-app-RG. Name der Funktions-App Geben Sie einen eindeutigen Namen ein, der aus Kleinbuchstaben, Ziffern oder Bindestrichen besteht und mit einem Buchstaben beginnt. Veröffentlichen Wählen Sie Code aus. Laufzeitstapel Wählen Sie .NET aus. Version Wählen Sie Version 6 (LTS), In-Process-Modell aus. Region Wählen Sie die Azure-Region aus, die dem Standort Ihrer Laborumgebung am nächsten liegt und vorzugsweise dem Standort entspricht, den Sie für die Bereitstellung von Azure IoT Central ausgewählt haben. Betriebssystem Windows Plantyp Verbrauch (serverlos) Klicken Sie auf Erstellen.
Hinweis
Warten Sie, bis die Bereitstellung der Azure Function-App abgeschlossen wurde. Dies kann etwa zwei Minuten dauern.
Wenn die Bereitstellung der Azure Functions-App abgeschlossen ist, wählen Sie Zu Ressource wechseln aus.
Wählen Sie im Bereich der Azure Function-App unter Im Azure-Portal erstellen Funktion erstellen aus.
Geben Sie im Bereich Funktion hinzufügen die folgenden Einstellungen an, und wählen Sie dann Erstellen aus.
Einstellung Konfiguration Entwicklungsumgebung Im Portal entwickeln Vorlage HTTP-Trigger Neue Funktion HttpTrigger1 Autorisierungsstufe Function Wählen Sie im Bereich HttpTrigger1 die Menüoption Integration aus.
Wählen Sie im Rechteck mit der Bezeichnung Ausgaben die Option + Ausgabe hinzufügen aus.
Geben Sie die folgenden Einstellungen ein, und wählen Sie dann Hinzufügen aus:
Einstellung Konfiguration Bindungstyp Wählen Sie Azure Cosmos DB aus. Dokumentparametername Ersetzen Sie den Standardwert mit outDoc. Datenbankname Geben Sie den Namen der Datenbank ein, die Sie in der vorherigen Übung erstellt haben: iotdb. Sammlungsname Geben Sie iotcollection ein. Bei Festlegung auf TRUE wird die Cosmos DB-Datenbank erstellt. Wählen Sie Ja aus. Cosmos DB account connection (Cosmos DB-Kontoverbindung) Wählen Sie Neuaus. Stellen Sie im Popupfenster Cosmos DB-Verbindung sicher, dass die Option Azure Cosmos DB-Konto ausgewählt ist. Wählen Sie in der Dropdownliste Datenbankkonto den Eintrag aus, der das Cosmos DB-Konto darstellt, das Sie in der vorherigen Übung erstellt haben, und wählen Sie dann OK aus. Partitionsschlüssel (optional) Geben Sie /pk/timestamp/deviceid ein. Hinweis
Bei der Auswahl eines optimalen Partitionsschlüssels ist es wichtig, die Verwendungsmuster und die Größenbeschränkung für logische Partitionen von 20 GB zu berücksichtigen. Sie können beispielsweise einen synthetischen Partitionsschlüssel erstellen, der aus einer Kombination von deviceId und date besteht.
Wählen Sie Code + Test aus.
Ersetzen Sie den vorhandenen Code durch den folgenden Inhalt, und wählen Sie dann Speichern aus.
#r "Newtonsoft.Json" using Microsoft.Azure.WebJobs.Host; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Microsoft.Extensions.Logging; using Microsoft.AspNetCore.Mvc; public static void Run(HttpRequest req, out object outDoc, ILogger log) { log.LogInformation($"C# Queue trigger function processed: {req.Body}"); string requestBody = new StreamReader(req.Body).ReadToEnd(); dynamic iotDataJson = JObject.Parse(requestBody); dynamic iotData = JsonConvert.DeserializeObject<dynamic>(iotDataJson.ToString()); log.LogInformation($"{iotData}"); outDoc = new { pk = iotData.device.id + "-" + iotData.timestamp.ToString("yyyyMMdd"), timestamp = iotData.timestamp, deviceId = iotData.device.id, temperature = iotData.device.telemetry.Thermostat_1o.temp.value }; }
Hinweis
Die Funktion protokolliert die JSON-basierten Nutzdaten der HTTP-Anforderung und erstellt einzelne JSON-Elemente, die in einem einzelnen Dokument der Cosmos DB-Zielsammlung gespeichert werden sollen, das der von Ihnen konfigurierten Funktionsausgabe entspricht. Sie können das pk-Element, das aus der verketteten deviceId-Eigenschaft und dem Datum des erfassten Telemetriedatenpunkts besteht, als Partitionsschlüssel verwenden.
Wählen Sie Funktions-URL abrufen für den Funktionsschlüssel aus, und zeichnen Sie dessen Wert auf.
Konfigurieren und Überprüfen von IoT-Telemetrieregeln einer Azure IoT Central-Anwendung
Wechseln Sie zurück zum Webbrowserfenster, in dem die Seite Geräte der Azure IoT Central-Anwendung angezeigt wird, die Sie zuvor in dieser Übung erstellt haben.
Wählen Sie im IoT Central-Anwendungsportal im vertikalen Menü die Option Regeln aus.
Wählen Sie + Neu aus, und konfigurieren Sie die folgenden Einstellungen:
Einstellung Konfiguration Regelname Geben Sie Adatum IoT telemetry rule (Adatum IoT-Telemetrieregel) ein. Gerätevorlage Wählen Sie Thermostat aus. Zeitaggregation Stellen Sie sicher, dass die Einstellungen Deaktiviert sind. Telemetrie Wählen Sie Temperature (Temperatur) aus. Operator Wählen Sie ist größer als aus. Geben Sie einen Wert ein. Geben Sie 0 ein. Aktion Wählen Sie + Webhook aus. Anzeigename Geben Sie Azure function webhook (Azure-Funktionswebhook) ein. Rückruf-URL Fügen Sie den Wert der Azure-Funktions-URL ein, den Sie sich in der vorherigen Aufgabe dieser Übung notiert haben. Hinweis
Der Wert der Temperaturtelemetrie wird absichtlich künstlich niedrig gehalten, um die Webhookfunktion aufzurufen und die Funktion auszulösen. In realen Szenarien würden Sie ihn an die Bedingung anpassen, die die Datensammlung zusichert, die Sie in der Cosmos DB-Zielsammlung speichern möchten.
Wählen Sie Fertig und dann Speichern aus.
Wechseln Sie zurück zum Webbrowserfenster, in dem der Bereich HttpTrigger1 | Programmieren und testen im Azure-Portal angezeigt wird.
Wählen Sie Überwachen und dann die Registerkarte Protokolle aus.
Stellen Sie sicher, dass im Bereich Protokolle die Nachrichten angezeigt werden, die als Reaktion auf den HTTP-Trigger generiert wurden, der von dem Webhook der Azure IoT Central-Anwendung stammt, den Sie zuvor in dieser Aufgabe konfiguriert haben.
Wechseln Sie zum Webbrowserfenster mit dem Bereich Daten-Explorer des Cosmos DB-Kontos, das Sie in der vorherigen Übung bereitgestellt haben.
Wählen Sie im Abschnitt NOSQL-API die Schaltfläche Aktualisieren mit dem runden Pfeil aus, erweitern Sie den Knoten iotdb und den darin enthaltenen Knoten iotcollection. Wählen Sie den Knoten Elemente und dann das erste Dokument in der Liste der Elemente aus.
Überprüfen Sie, ob im Bereich Details auf der Registerkarte Elemente im Fenster Daten-Explorer die Telemetriedaten angezeigt werden, die von den in der Azure Central IoT-Anwendung registrierten und von der Azure-Funktion verarbeiteten Geräten generiert wurden, einschließlich pk, timestamp, deviceId und temperature.
Ergebnisse
Herzlichen Glückwunsch! Sie haben die zweite Übung dieses Moduls abgeschlossen. In dieser Übung haben Sie eine Azure IoT Central-Anwendung erstellt.