Ćwiczenie — integrowanie usługi Azure Cosmos DB z potokiem danych IoT
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
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.
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. Wybierz pozycję Przejrzyj i utwórz. Następnie wybierz Utwórz.
Gdy aplikacja jest gotowa, możesz przejść do niej z witryny Azure Portal:
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:
Na stronie Pulpit nawigacyjny portalu aplikacji usługi IoT Central w menu pionowym wybierz pozycję Urządzenia.
W sekcji Termostat wybierz pozycję Termostat-Strefa1.
W okienku Termostat-Strefa1 przejrzyj zawartość karty Pulpit nawigacyjny .
Wybierz kartę Nieprzetworzone dane i przejrzyj zawartość.
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.
Uruchom przeglądarkę internetową, przejdź do witryny Azure Portal i zaloguj się do subskrypcji platformy Azure, której używasz w tym module.
Użyj pola tekstowego Wyszukaj zasoby, usługi i dokumenty , aby wyszukać aplikację funkcji.
W okienku Aplikacja funkcji wybierz pozycję + Utwórz.
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) Wybierz pozycję Utwórz.
Uwaga
Poczekaj na ukończenie aprowizacji aplikacji funkcji platformy Azure. Może to potrwać około dwóch minut.
Po zakończeniu wdrażania aplikacji funkcji platformy Azure wybierz pozycję Przejdź do zasobu.
W okienku Aplikacja funkcji platformy Azure w obszarze Utwórz w witrynie Azure Portal wybierz pozycję Utwórz funkcję.
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 W okienku HttpTrigger1 wybierz pozycję Integracja z menu.
W prostokątze oznaczonym etykietą Dane wyjściowe wybierz pozycję + Dodaj dane wyjściowe.
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. 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.
Wybierz pozycję Kod i test.
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 }; }
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.
Wybierz pozycję Pobierz adres URL funkcji dla klucza funkcji i zapisz jego wartość.
Konfigurowanie i weryfikowanie reguł telemetrii IoT aplikacji usługi Azure IoT Central
Wróć do okna przeglądarki internetowej z wyświetloną stroną Urządzenia aplikacji usługi Azure IoT Central utworzonej wcześniej w tym ćwiczeniu.
W menu pionowym portalu aplikacji usługi IoT Central wybierz pozycję Reguły.
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. 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.
Wybierz pozycję Gotowe, a następnie wybierz pozycję Zapisz.
Przełącz się z powrotem do okna przeglądarki internetowej z wyświetlonym elementem HttpTrigger1 | Okienko Kod i test w witrynie Azure Portal.
Wybierz pozycję Monitor, a następnie wybierz kartę Dzienniki .
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.
Przejdź do okna przeglądarki internetowej, w którym jest wyświetlane okienko Eksplorator danych konta usługi Cosmos DB aprowizowanego w poprzednim ćwiczeniu.
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.
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ę.
Wyniki
Gratulacje! Drugie ćwiczenie tego modułu zostało ukończone. W tym ćwiczeniu utworzono aplikację usługi Azure IoT Central.