Cvičení – integrace služby Azure Cosmos DB s datovým kanálem IoT

Dokončeno

Toto cvičení poskytuje přehled o nastavení shromažďování, zpracování a ukládání telemetrických dat IoT vygenerovaných pomocí aplikace Azure IoT Central.

V tomto cvičení:

  • Vytvoření aplikace Azure IoT Central
  • Vytvořte funkci Azure, která protokoluje datovou část požadavku HTTP.
  • Nakonfigurujte a ověřte pravidla telemetrie IoT aplikace Azure IoT Central.

Požadavky

K provedení tohoto cvičení potřebujete:

  • Účet Microsoft nebo účet Microsoft Entra s rolí Globální Správa istrator v tenantovi Microsoft Entra. Tenant musí být přidružený k předplatnému Azure a k roli vlastníka nebo přispěvatele v předplatném Azure.
  • K dokončení lekce cvičení Nastavte službu Azure Cosmos DB.
  • Aktivní předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.

Vytvoření aplikace Azure IoT Central

  1. Na webu Azure Portal přejděte na stránku Vytvořit aplikaci IoT Central. Pokud se zobrazí výzva, přihlaste se pomocí účtu Azure.

  2. Zadejte následující údaje:

    Pole Popis
    Předplatné Předplatné Azure, které chcete použít.
    Skupina prostředků Skupina prostředků, kterou chcete použít. Můžete vytvořit novou skupinu prostředků nebo použít existující.
    Název prostředku Platný název prostředku Azure, například adatum-iot-custom-application.
    Adresa URL aplikace Subdoména adresy URL pro vaši aplikaci, jako je adatum-iot-custom-application. Adresa URL aplikace IoT Central vypadá takto https://adatum-iot-custom-application.azureiotcentral.com.
    Šablona Analýza v úložišti – Monitorování podmínek
    Oblast Oblast Azure, kterou chcete použít.
    Cenový plán Vyberte jeden ze standardních cenových plánů. Další informace o cenách najdete v tématu o cenách Azure IoT Central.
  3. Vyberte Zkontrolovat a vytvořit. Pak vyberte Vytvořit.

Až bude aplikace připravená, můžete na ni přejít z webu Azure Portal:

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

Tip

Pokud chcete zobrazit seznam všech aplikací IoT Central, ke kterým máte přístup, přejděte do aplikací IoT Central.

Během několika minut nebo méně se zobrazí stránka Řídicí panel . Projděte si telemetrii a analýzu ukázkové aplikace Azure IoT Central:

  1. Na stránce řídicího panelu portálu aplikací IoT Central v vertikální nabídce vyberte Zařízení.

  2. V části Termostat vyberte Termostat-Zóna1.

  3. V podokně Termostat-Zóna1 zkontrolujte obsah karty Řídicí panel.

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

  4. Vyberte kartu Nezpracovaná data a zkontrolujte obsah.

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

Vytvoření funkce Azure, která protokoluje datovou část požadavku HTTP

V této úloze vytváříte aplikaci Funkcí Azure, která implementuje funkci webhooku HTTP. Tuto funkci použijte k předávání telemetrických dat z aplikace Azure IoT Central vytvořením pravidla aplikace.

  1. Spusťte webový prohlížeč, přejděte na web Azure Portal a přihlaste se k předplatnému Azure, které používáte pro tento modul.

  2. Pomocí textového pole Hledat prostředky, služby a dokumenty vyhledejte aplikaci Function App.

  3. V podokně Aplikace funkcí vyberte + Vytvořit.

  4. Na kartě Základy nakonfigurujte následující nastavení a pak vyberte Zkontrolovat a vytvořit.

    Nastavení Konfigurace
    Předplatné Vyberte název předplatného Azure, které používáte pro tento modul.
    Skupina prostředků Vytvořte novou skupinu prostředků s názvem function-app-RG.
    Název aplikace funkcí Zadejte jedinečný název, který se skládá z malých písmen, číslic nebo pomlček a začíná písmenem.
    Publikovat Vyberte Kód.
    Zásobník modulu runtime Vyberte .NET.
    Verze Vyberte verzi 6 (LTS), model v procesu.
    Oblast Vyberte oblast Azure nejblíže umístění testovacího prostředí, nejlépe odpovídající umístění, které jste zvolili pro nasazení Azure IoT Central.
    Operační systém Windows
    Typ plánu Spotřeba (bez serveru)

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

  5. Vyberte Vytvořit.

    Poznámka:

    Počkejte na dokončení zřizování aplikace Funkcí Azure. Může to trvat asi dvě minuty.

  6. Po dokončení nasazení aplikace Funkcí Azure vyberte Přejít k prostředku.

  7. V podokně Aplikace funkcí Azure v části Vytvořit na webu Azure Portal vyberte Vytvořit funkci.

  8. V podokně Přidat funkci zadejte následující nastavení a pak vyberte Vytvořit.

    Nastavení Konfigurace
    Vývojové prostředí Vývoj na portálu
    Šablona Trigger HTTP
    Nová funkce HttpTrigger1
    Úroveň autorizace Funkce

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

  9. V podokně HttpTrigger1 vyberte v nabídce možnost Integrace.

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

  10. V obdélníku s popisky Výstupy vyberte + Přidat výstup.

  11. Nakonfigurujte následující nastavení a pak vyberte Přidat:

    Nastavení Konfigurace
    Typ vazby Vyberte Azure Cosmos DB.
    Název parametru dokumentu Nahraďte výchozí hodnotu outDoc.
    Název databáze Zadejte název databáze, kterou jste vytvořili v předchozím cvičení iotdb.
    Název kolekce Zadejte iotcollection.
    Pokud je hodnota true, vytvoří se databáze Cosmos DB. Vyberte Ano.
    Připojení účtu databáze Cosmos DB Vyberte Nový. V automaticky otevírané nabídce Připojení k nové službě Cosmos DB se ujistěte, že je vybraná možnost Účet služby Azure Cosmos DB. V rozevíracím seznamu Účet databáze vyberte položku představující účet Cosmos DB, který jste vytvořili v předchozím cvičení, a pak vyberte OK.
    Klíč oddílu (volitelné) Zadejte /pk/timestamp/deviceid.

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

    Poznámka:

    Při výběru optimálního klíče oddílu je důležité zvážit vzory použití a limit velikosti logického oddílu o velikosti 20 GB. Můžete například vytvořit syntetický klíč oddílu, který se skládá z kombinace id zařízení a data.

  12. Vyberte kód + test.

  13. Nahraďte stávající kód následujícím obsahem a pak vyberte Uložit.

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

    Poznámka:

    Funkce zaznamená datovou část požadavku HTTP založenou na FORMÁTU JSON a vytvoří jednotlivé elementy JSON, které se mají uložit v individuálním dokumentu cílové kolekce Cosmos DB odpovídající výstupu funkce, který jste nakonfigurovali. Jako klíč oddílu můžete použít prvek pk , který se skládá z zřetězené vlastnosti deviceId a data shromážděného datového bodu telemetrie.

  14. Vyberte Získat adresu URL funkce pro klíč funkce a poznamenejte si její hodnotu.

    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.

Konfigurace a ověření pravidel telemetrie IoT aplikace Azure IoT Central

  1. Přepněte zpět do okna webového prohlížeče zobrazující stránku Zařízení aplikace Azure IoT Central, kterou jste vytvořili dříve v tomto cvičení.

  2. V vertikální nabídce portálu aplikací IoT Central vyberte Pravidla.

  3. Vyberte + Nový a nakonfigurujte následující nastavení:

    Nastavení Konfigurace
    Název pravidla Zadejte pravidlo telemetrie Adatum IoT.
    Šablona zařízení Vyberte termostat.
    Časová agregace Ujistěte se, že jsou nastavení vypnutá.
    Telemetrie Vyberte Teplotu.
    Operátor Vyberte možnost je větší než.
    Zadejte hodnotu. Zadejte 0.
    Akce Vyberte + Webhook.
    Zobrazované jméno Zadejte webhook funkce Azure.
    Adresa URL zpětného volání Vložte hodnotu adresy URL funkce Azure, kterou jste si poznamenali v předchozím úkolu tohoto cvičení.

    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.

    Poznámka:

    Hodnota telemetrie teploty je záměrně nízká, aby vyvolala funkci webhooku a aktivovala funkci. V reálných scénářích byste ji upravili tak, aby odpovídala podmínce, která zaručuje shromažďování dat, které chcete uložit v cílové kolekci Cosmos DB.

  4. Vyberte Hotovo a pak vyberte Uložit.

  5. Přepnutí zpět do okna webového prohlížeče zobrazující httpTrigger1 | Podokno Code + Test na webu Azure Portal

  6. Vyberte Možnost Sledovat a pak vyberte kartu Protokoly .

  7. Ověřte, že podokno protokolů zobrazuje zprávy vygenerované v reakci na trigger HTTP pocházející z webhooku aplikace Azure IoT Central, který jste nakonfigurovali dříve v této úloze.

  8. Přepněte do okna webového prohlížeče zobrazující podokno Průzkumník dat účtu služby Cosmos DB, který jste zřídili v předchozím cvičení.

  9. V části rozhraní API NOSQL vyberte tlačítko Aktualizovat kruhovou šipku, rozbalte uzel iotdb a iotcollection v něm. Vyberte uzel Položky a pak v seznamu položek vyberte první dokument.

  10. Ověřte, že podokno podrobností na kartě Položky v okně Průzkumník dat zobrazuje telemetrická data generovaná zařízeními zaregistrovanými v aplikaci Azure Central IoT a zpracovávaná funkcí Azure, včetně pk, časového razítka, id zařízení a teploty.

    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.

Výsledky

Gratulujeme! Dokončili jste druhé cvičení tohoto modulu. V tomto cvičení jste vytvořili aplikaci Azure IoT Central.