Ćwiczenie — integrowanie usługi Azure Cosmos DB z potokiem danych IoT

Ukończone

To ćwiczenie zawiera omówienie konfigurowania kolekcji, przetwarzania i przechowywania wygenerowanych danych telemetrycznych IoT przy użyciu aplikacji usługi Azure IoT Central.

W tym ćwiczeniu wykonasz następujące czynności:

  • Tworzenie aplikacji usługi Azure IoT Central.
  • Utwórz funkcję platformy Azure, która rejestruje ładunek żądania HTTP.
  • Konfigurowanie i weryfikowanie reguł telemetrii IoT aplikacji usługi Azure IoT Central.

Wymagania wstępne

Aby wykonać to ćwiczenie, potrzebne są następujące elementy:

  • Konto Microsoft lub konto Microsoft Entra z rolą Global Administracja istrator w dzierżawie firmy Microsoft Entra. Dzierżawa musi być skojarzona z subskrypcją platformy Azure i z rolą Właściciel lub Współautor w subskrypcji platformy Azure.
  • Aby ukończyć jednostkę ćwiczenia Konfigurowanie usługi Azure Cosmos DB.
  • Aktywna subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Tworzenie aplikacji usługi Azure IoT Central

  1. Przejdź do strony Tworzenie aplikacji usługi IoT Central w witrynie Azure Portal. W przypadku wyświetlenia monitu zaloguj się przy użyciu konta platformy Azure.

  2. Wprowadź następujące informacje:

    Pole opis
    Subskrypcja Subskrypcja platformy Azure, której chcesz użyć.
    Grupa zasobów Grupa zasobów, której chcesz użyć. istnieje możliwość utworzenia nowej lub użycia istniejącej grupy zasobów.
    Nazwa zasobu Prawidłowa nazwa zasobu platformy Azure, taka jak adatum-iot-custom-application.
    Adres URL aplikacji Poddomena adresu URL dla aplikacji, taka jak adatum-iot-custom-application. Adres URL aplikacji usługi IoT Central wygląda następująco: https://adatum-iot-custom-application.azureiotcentral.com.
    Template Analiza w sklepie — monitorowanie warunków
    Region (Region) Region platformy Azure, którego chcesz użyć.
    Plan cenowy Wybierz jeden ze standardowych planów cenowych. Aby dowiedzieć się więcej o cenach, zobacz Cennik usługi Azure IoT Central.
  3. Wybierz pozycję Przejrzyj i utwórz. Następnie wybierz Utwórz.

Gdy aplikacja jest gotowa, możesz przejść do niej z witryny Azure Portal:

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

Napiwek

Aby wyświetlić listę wszystkich aplikacji usługi IoT Central, do których masz dostęp, przejdź do pozycji Aplikacje usługi IoT Central.

W ciągu kilku minut lub mniej zostanie wyświetlona strona Pulpit nawigacyjny . Przejrzyj dane telemetryczne i analizę przykładowej aplikacji usługi Azure IoT Central:

  1. Na stronie Pulpit nawigacyjny portalu aplikacji usługi IoT Central w menu pionowym wybierz pozycję Urządzenia.

  2. W sekcji Termostat wybierz pozycję Termostat-Strefa1.

  3. W okienku Termostat-Strefa1 przejrzyj zawartość karty Pulpit nawigacyjny .

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

  4. Wybierz kartę Nieprzetworzone dane i przejrzyj zawartość.

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

Tworzenie funkcji platformy Azure, która rejestruje ładunek żądania HTTP

W tym zadaniu tworzysz aplikację funkcji platformy Azure, która implementuje funkcję elementu webhook HTTP. Zastosuj tę funkcję, aby przekazywać dane telemetryczne z aplikacji usługi Azure IoT Central, tworząc regułę aplikacji.

  1. Uruchom przeglądarkę internetową, przejdź do witryny Azure Portal i zaloguj się do subskrypcji platformy Azure, której używasz w tym module.

  2. Użyj pola tekstowego Wyszukaj zasoby, usługi i dokumenty , aby wyszukać aplikację funkcji.

  3. W okienku Aplikacja funkcji wybierz pozycję + Utwórz.

  4. Na karcie Podstawowe skonfiguruj następujące ustawienia, a następnie wybierz pozycję Przejrzyj i utwórz.

    Ustawienie Konfigurowanie
    Subskrypcja Wybierz nazwę subskrypcji platformy Azure, której używasz dla tego modułu.
    Grupa zasobów Utwórz nową grupę zasobów o nazwie function-app-RG.
    Nazwa aplikacji funkcji Wprowadź unikatową nazwę składającą się z małych liter, cyfr lub kreski i zaczyna się literą.
    Publikowanie Wybierz pozycję Kod.
    Stos środowiska uruchomieniowego Wybierz pozycję .NET.
    Wersja Wybierz pozycję Wersja 6 (LTS), model w procesie.
    Region (Region) Wybierz region świadczenia usługi Azure najbliżej lokalizacji środowiska laboratoryjnego, najlepiej pasujący do wybranej lokalizacji wdrożenia usługi Azure IoT Central.
    System operacyjny Windows
    Typ planu Użycie (bezserwerowe)

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

  5. Wybierz pozycję Utwórz.

    Uwaga

    Poczekaj na ukończenie aprowizacji aplikacji funkcji platformy Azure. Może to potrwać około dwóch minut.

  6. Po zakończeniu wdrażania aplikacji funkcji platformy Azure wybierz pozycję Przejdź do zasobu.

  7. W okienku Aplikacja funkcji platformy Azure w obszarze Utwórz w witrynie Azure Portal wybierz pozycję Utwórz funkcję.

  8. W okienku Dodawanie funkcji określ następujące ustawienia, a następnie wybierz pozycję Utwórz.

    Ustawienie Konfigurowanie
    Środowisko projektowe Programowanie w portalu
    Template Wyzwalacz HTTP
    Nowa funkcja HttpTrigger1
    Poziom autoryzacji Funkcja

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

  9. W okienku HttpTrigger1 wybierz pozycję Integracja z menu.

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

  10. W prostokątze oznaczonym etykietą Dane wyjściowe wybierz pozycję + Dodaj dane wyjściowe.

  11. Skonfiguruj następujące ustawienia, a następnie wybierz pozycję Dodaj:

    Ustawienie Konfigurowanie
    Typ powiązania Wybierz pozycję Azure Cosmos DB.
    Nazwa parametru dokumentu Zastąp wartość domyślną elementem outDoc.
    Nazwa bazy danych Wprowadź nazwę bazy danych utworzonej w poprzednim ćwiczeniu iotdb.
    Nazwa kolekcji Wprowadź iotcollection.
    Jeśli wartość true, tworzy bazę danych usługi Cosmos DB Wybierz opcję Tak.
    Połączenie konta usługi Cosmos DB Wybierz Nowy. W oknie podręcznym Nowe połączenie usługi Cosmos DB upewnij się, że wybrano opcję Konto usługi Azure Cosmos DB. Z listy rozwijanej Konto bazy danych wybierz wpis reprezentujący konto usługi Cosmos DB utworzone w poprzednim ćwiczeniu, a następnie wybierz przycisk OK.
    Klucz partycji (opcjonalny) Wprowadź /pk/timestamp/deviceid.

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

    Uwaga

    Podczas wybierania optymalnego klucza partycji należy wziąć pod uwagę wzorce użycia i limit rozmiaru partycji logicznej 20 GB. Można na przykład utworzyć syntetyczny klucz partycji składający się z kombinacji identyfikatorów deviceId i daty.

  12. Wybierz pozycję Kod i test.

  13. Zastąp istniejący kod następującą zawartością, a następnie wybierz pozycję Zapisz.

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

    Uwaga

    Funkcja rejestruje ładunek oparty na formacie JSON żądania HTTP i tworzy poszczególne elementy JSON, które mają być przechowywane w pojedynczym dokumencie docelowej kolekcji usługi Cosmos DB odpowiadającej skonfigurowanym danych wyjściowych funkcji. Można użyć elementu pk , który składa się z połączonej właściwości deviceId i daty zebranego punktu danych telemetrycznych jako klucza partycji.

  14. Wybierz pozycję Pobierz adres URL funkcji dla klucza funkcji i zapisz jego wartość.

    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.

Konfigurowanie i weryfikowanie reguł telemetrii IoT aplikacji usługi Azure IoT Central

  1. Wróć do okna przeglądarki internetowej z wyświetloną stroną Urządzenia aplikacji usługi Azure IoT Central utworzonej wcześniej w tym ćwiczeniu.

  2. W menu pionowym portalu aplikacji usługi IoT Central wybierz pozycję Reguły.

  3. Wybierz pozycję + Nowy i skonfiguruj następujące ustawienia:

    Ustawienie Konfigurowanie
    Nazwa reguły Wprowadź regułę telemetrii Adatum IoT.
    Szablon urządzenia Wybierz pozycję Termostat.
    Agregacja czasu Upewnij się, że ustawienia są wyłączone.
    Telemetria Wybierz pozycję Temperatura.
    Operator Wybierz pozycję jest większe niż.
    Wprowadź wartość Wprowadź wartość 0.
    Akcja Wybierz pozycję + Element webhook.
    Display name Wprowadź element webhook funkcji platformy Azure.
    Adres URL wywołania zwrotnego Wklej wartość adresu URL funkcji platformy Azure zarejestrowanego w poprzednim zadaniu tego ćwiczenia.

    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.

    Uwaga

    Wartość telemetrii temperatury jest celowo sztucznie niska, aby wywołać funkcję elementu webhook i wyzwolić funkcję. W rzeczywistych scenariuszach dostosujesz go do warunku, który gwarantuje zbieranie danych, które ma być przechowywane w docelowej kolekcji usługi Cosmos DB.

  4. Wybierz pozycję Gotowe, a następnie wybierz pozycję Zapisz.

  5. Przełącz się z powrotem do okna przeglądarki internetowej z wyświetlonym elementem HttpTrigger1 | Okienko Kod i test w witrynie Azure Portal.

  6. Wybierz pozycję Monitor, a następnie wybierz kartę Dzienniki .

  7. Sprawdź, czy w okienku dzienników są wyświetlane komunikaty wygenerowane w odpowiedzi na wyzwalacz HTTP pochodzący z elementu webhook aplikacji usługi Azure IoT Central skonfigurowanego wcześniej w tym zadaniu.

  8. Przejdź do okna przeglądarki internetowej, w którym jest wyświetlane okienko Eksplorator danych konta usługi Cosmos DB aprowizowanego w poprzednim ćwiczeniu.

  9. W sekcji INTERFEJSu API NOSQL wybierz przycisk Odśwież strzałkę cykliczną, rozwiń węzeł iotdb i iotcollection w nim. Wybierz węzeł Elementy, a następnie wybierz pierwszy dokument na liście elementów.

  10. Sprawdź, czy okienko szczegółów karty Elementy w oknie Eksplorator danych wyświetla dane telemetryczne generowane przez urządzenia zarejestrowane w aplikacji Azure Central IoT i przetwarzane przez funkcję platformy Azure, w tym pk, znacznik czasu, identyfikator urządzenia i 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.

Wyniki

Gratulacje! Drugie ćwiczenie tego modułu zostało ukończone. W tym ćwiczeniu utworzono aplikację usługi Azure IoT Central.