Övning – Integrera Azure Cosmos DB med IoT-datapipelinen

Slutförd

Den här övningen ger en översikt över hur du konfigurerar insamling, bearbetning och lagring av IoT-telemetri som genereras med hjälp av ett Azure IoT Central-program.

I den här övningen ska du:

  • Skapa ett Azure IoT Central-program.
  • Skapa en Azure-funktion som loggar en HTTP-begärandenyttolast.
  • Konfigurera och verifiera IoT-telemetriregler för ett Azure IoT Central-program.

Förutsättningar

För att utföra den här övningen behöver du:

  • Ett Microsoft-konto eller ett Microsoft Entra-konto med rollen Global administratör i Microsoft Entra-klientorganisationen. Klientorganisationen måste vara associerad med Azure-prenumerationen och med rollen Ägare eller Deltagare i Azure-prenumerationen.
  • Slutför övningsenheten Konfigurera Azure Cosmos DB.
  • En aktiv Azure-prenumeration. Om du inte har någon Azure-prenumeration skapar du ett kostnadsfritt konto innan du börjar.

Skapa ett Azure IoT Central-program

  1. Gå till sidan Skapa IoT Central-program i Azure-portalen. Logga in med ditt Azure-konto om du uppmanas till det.

  2. Ange följande information:

    Fält beskrivning
    Prenumeration Den Azure-prenumeration som du vill använda.
    Resursgrupp Den resursgrupp som du vill använda. Du kan skapa en ny resursgrupp eller välja en befintlig.
    Resursnamn Ett giltigt Azure-resursnamn, till exempel adatum-iot-custom-application.
    Program-URL En URL-underdomän för ditt program, till exempel adatum-iot-custom-application. URL:en för ett IoT Central-program ser ut som https://adatum-iot-custom-application.azureiotcentral.com.
    Template Analys i butiken – Villkorsövervakning
    Region Den Azure-region som du vill använda.
    Prisplan Välj en av standardprisplanerna. Mer information om priser finns i Prissättning för Azure IoT Central.
  3. Välj Granska + skapa. Välj sedan Skapa.

När appen är klar kan du navigera till den från Azure-portalen:

Screenshot that shows the IoT Central application resource in the Azure portal. The application URL is highlighted.

Dricks

Om du vill visa en lista över alla IoT Central-program som du har åtkomst till går du till IoT Central-program.

Om några minuter eller mindre visas sidan Instrumentpanel . Granska telemetri och analys av Azure IoT Central-exempelprogrammet:

  1. På sidan Instrumentpanel i IoT Central-programportalen går du till den lodräta menyn och väljer Enheter.

  2. I avsnittet Termostat väljer du Thermostat-Zone1.

  3. Granska innehållet på fliken Instrumentpanel i fönstret Thermostat-Zone1.

    Screenshot of the Dashboard tab of the 'Thermostat-Zone1' device pane in the IoT Central Application portal.

  4. Välj fliken Rådata och granska innehållet.

    Screenshot of the Raw data tab of the 'Thermostat-Zone1' device pane in the IoT Central Application portal.

Skapa en Azure-funktion som loggar en HTTP-begärandenyttolast

I den här uppgiften skapar du en Azure-funktionsapp som implementerar HTTP webhook-funktionerna. Använd den här funktionen för att vidarebefordra telemetridata från Azure IoT Central-programmet genom att skapa en programregel.

  1. Starta en webbläsare, navigera till Azure-portalen och logga in på den Azure-prenumeration som du använder för den här modulen.

  2. Använd textrutan Sök efter resurser, tjänster och dokument för att söka efter funktionsappen.

  3. I fönstret Funktionsapp väljer du + Skapa.

  4. På fliken Grundläggande konfigurerar du följande inställningar och väljer sedan Granska + skapa.

    Inställning Konfiguration
    Prenumeration Välj namnet på den Azure-prenumeration som du använder för den här modulen.
    Resursgrupp Skapa en ny resursgrupp med namnet function-app-RG.
    Funktionsappens namn Ange ett unikt namn som består av gemener, siffror eller bindestreck och börjar med en bokstav.
    Publicera Välj Kod.
    CLR-stack Välj .NET.
    Version Välj Version 6 (LTS), processmodell.
    Region Välj den Azure-region som är närmast platsen för labbmiljön, helst med den plats som du valde för Azure IoT Central-distributionen.
    Operativsystem Windows
    Abonnemangstyp Förbrukning (serverlös)

    Screenshot of the Basics tab of the Create Function App pane in the Azure portal.

  5. Välj Skapa.

    Kommentar

    Vänta tills etableringen av Azure-funktionsappen har slutförts. Det kan ta ungefär två minuter.

  6. När distributionen av Azure-funktionsappen är klar väljer du Gå till resurs.

  7. I fönstret Azure-funktionsapp går du till Skapa i Azure-portalen och väljer Skapa funktion.

  8. I fönstret Lägg till funktion anger du följande inställningar och väljer sedan Skapa.

    Inställning Konfiguration
    Utvecklingsmiljö Utveckla i portalen
    Template HTTP-utlösare
    Ny funktion HttpTrigger1
    Auktoriseringsnivå Funktion

    Screenshot of the 'Add function' pane of the Azure Function app in the Azure portal.

  9. I fönstret HttpTrigger1 väljer du Integrering på menyn.

    Screenshot of the Integration function pane of the Azure Function app in the Azure portal.

  10. I rektangeln med etiketten Utdata väljer du + Lägg till utdata.

  11. Konfigurera följande inställningar och välj sedan Lägg till:

    Inställning Konfiguration
    Bindningstyp Välj Azure Cosmos DB.
    Dokumentparameternamn Ersätt standardvärdet med outDoc.
    Databasnamn Ange namnet på databasen som du skapade i föregående övning, iotdb.
    Samlingsnamn Ange iotcollection.
    Om det är sant skapar du Cosmos DB-databasen Välj Ja.
    Cosmos DB kontoanslutning Välj Ny. I popup-fönstret Ny Cosmos DB-anslutning kontrollerar du att alternativet Azure Cosmos DB-konto är valt. I listrutan Databaskonto väljer du posten som representerar det Cosmos DB-konto som du skapade i föregående övning och väljer sedan OK.
    Partitionsnyckel (valfritt) Ange /pk/timestamp/deviceid.

    Screenshot of the Create Output pane of the HttpTrigger1 Integration pane of an Azure function in the Azure portal.

    Kommentar

    När du väljer en optimal partitionsnyckel är det viktigt att tänka på användningsmönstren och storleksgränsen på 20 GB logisk partition. Du kan till exempel skapa en syntetisk partitionsnyckel som består av en kombination av deviceId och datum.

  12. Välj Kod + test.

  13. Ersätt den befintliga koden med följande innehåll och välj sedan Spara.

    #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
      };
    }
    

    Screenshot of the Code + Test pane of the HttpTrigger1 of the Azure Function app in the Azure portal displaying the code.

    Kommentar

    Funktionen loggar den JSON-baserade nyttolasten för HTTP-begäran och konstruerar enskilda JSON-element som ska lagras i ett enskilt dokument i Cosmos DB-målsamlingen som motsvarar de funktionsutdata som du har konfigurerat. Du kan använda pk-elementet , som består av egenskapen concatenated deviceId och datumet för den insamlade telemetridatapunkten, som partitionsnyckel.

  14. Välj Hämta funktions-URL för funktionsnyckeln och registrera dess värde.

    Screenshot of the Code + Test pane of the HttpTrigger1 of the Azure Function app in the Azure portal, with the Get function URL pop-up window.

Konfigurera och verifiera IoT-telemetriregler för ett Azure IoT Central-program

  1. Växla tillbaka till webbläsarfönstret med sidan Enheter i Azure IoT Central-programmet som du skapade tidigare i den här övningen.

  2. I den lodräta menyn i IoT Central-programportalen väljer du Regler.

  3. Välj + Ny och konfigurera följande inställningar:

    Inställning Konfiguration
    Regelnamn Ange Adatum IoT-telemetriregel.
    Enhetsmall Välj Termostat.
    Tidsmängd Kontrollera att inställningarna är inaktiverade.
    Telemetri Välj Temperatur.
    Operator Välj är större än.
    Ange ett värde Ange 0.
    Åtgärd Välj + Webhook.
    Visningsnamn Ange Azure-funktionswebbhooken.
    Återanrops-URL Klistra in värdet för den Azure-funktions-URL som du registrerade i föregående uppgift i den här övningen.

    Screenshot of the first part of the sample Azure IoT Central application rule.

    Screenshot of the second part of the sample Azure IoT Central application rule.

    Kommentar

    Värdet för temperaturtelemetrin är avsiktligt artificiellt lågt för att anropa webhooksfunktionen och utlösa funktionen. I verkliga scenarier justerar du den så att den motsvarar villkoret som garanterar den datainsamling som du tänker lagra i Cosmos DB-målsamlingen.

  4. Välj Klar och välj sedan Spara.

  5. Växla tillbaka till webbläsarfönstret med HttpTrigger1 | Fönstret Kod + test i Azure-portalen.

  6. Välj Övervaka och välj sedan fliken Loggar .

  7. Kontrollera att loggfönstret visar de meddelanden som genererats som svar på HTTP-utlösaren från Azure IoT Central-programwebbhooken som du konfigurerade tidigare i den här uppgiften.

  8. Växla till webbläsarfönstret som visar fönstret Datautforskaren för det Cosmos DB-konto som du etablerade i föregående övning.

  9. I avsnittet NOSQL API väljer du knappen Uppdatera cirkelpil, expanderar iotdb-noden och iotcollection i den. Välj noden Objekt och välj sedan det första dokumentet i listan med objekt.

  10. Kontrollera att informationsfönstret på fliken Objekt i fönstret Datautforskaren visar telemetridata som genereras av enheter som registrerats med Azure Central IoT-programmet och bearbetats av Azure-funktionen, inklusive pk, tidsstämpel, deviceId och temperatur.

    Screenshot of the Azure Cosmos DB items. The items represent the telemetry data generated by devices registered with Azure IoT Central and processed by the Azure function.

Resultat

Grattis! Du har slutfört den andra övningen i den här modulen. I den här övningen skapade du ett Azure IoT Central-program.