Kurz: Vytvoření kompletního řešení

Tento kurz služby Azure Digital Twins popisuje, jak vytvořit ucelené řešení, které předvádí funkce služby. Pokud chcete nastavit kompletní komplexní řešení řízené živými daty z vašeho prostředí, můžete instanci služby Azure Digital Twins připojit k dalším službám Azure pro správu zařízení a dat.

V tomto kurzu budete...

  • Nastavení instance Služby Azure Digital Twins
  • Seznamte se s ukázkovým scénářem sestavování a vytvořte instanci předem napsaných komponent.
  • Použití aplikace Azure Functions ke směrování simulované telemetrie ze zařízení IoT Hubu do vlastností digitálního dvojčete
  • Šíření změn prostřednictvím grafu dvojčat zpracováním oznámení digitálního dvojčete pomocí Azure Functions, koncových bodů a tras

Požadavky

Než začnete s tímto kurzem, začněte s těmito požadavky:

  • Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
  • Tento kurz používá .NET. Nejnovější verzi sady .NET SDK pro více platforem si můžete stáhnout z webu Download .NET.

Pak pokračujte ve zbývající části tohoto oddílu a nastavte zbývající požadavky.

Získání ukázkových prostředků

Kurz je řízený kompletním ukázkovým projektem Azure Digital Twins napsaným v jazyce C#. Získejte ukázkový projekt na svém počítači tak, že přejdete na ukázkový odkaz a vyberete tlačítko Procházet kód pod názvem.

Tím přejdete do úložiště GitHubu pro ukázky, které si můžete stáhnout jako soubor .zip tak , že vyberete tlačítko Kód následované stažením SOUBORU ZIP.

Screenshot of the digital-twins-samples repo on GitHub, highlighting the steps to download it as a zip.

Tím stáhnete složku .zip do počítače jako digital-twins-samples-main.zip. Rozbalte složku a extrahujte soubory.

Příprava instance Služby Azure Digital Twins

Pokud chcete pracovat se službou Azure Digital Twins v tomto článku, budete potřebovat instanci služby Azure Digital Twins a požadovaná oprávnění k jeho použití. Pokud už máte nastavenou instanci Služby Azure Digital Twins, můžete tuto instanci použít a přeskočit k další části. V opačném případě postupujte podle pokynů v části Nastavení instance a ověřování. Pokyny obsahují informace, které vám pomůžou ověřit, že jste každý krok úspěšně dokončili.

Po nastavení instance si poznamenejte název hostitele instance. Název hostitele najdete na webu Azure Portal.

Příprava prostředí pro rozhraní příkazového řádku Azure

Nastavení relace rozhraní příkazového řádku

Pokud chcete začít pracovat s Azure Digital Twins v rozhraní příkazového řádku, je první věc, kterou je potřeba udělat, přihlásit se a nastavit kontext rozhraní příkazového řádku pro vaše předplatné pro tuto relaci. V okně rozhraní příkazového řádku spusťte tyto příkazy:

az login
az account set --subscription "<your-Azure-subscription-ID>"

Tip

Název předplatného můžete použít také místo ID v příkazu výše.

Pokud jste toto předplatné použili s Azure Digital Twins poprvé, spusťte tento příkaz a zaregistrujte se v oboru názvů Azure Digital Twins. (Pokud si nejste jistí, můžete ho znovu spustit, i když jste to někdy udělali v minulosti.)

az provider register --namespace 'Microsoft.DigitalTwins'

Dále přidáte rozšíření Microsoft Azure IoT pro Azure CLI, které povolí příkazy pro interakci se službou Azure Digital Twins a dalšími službami IoT. Spuštěním tohoto příkazu se ujistěte, že máte nejnovější verzi rozšíření:

az extension add --upgrade --name azure-iot

Teď jste připraveni pracovat s Azure Digital Twins v Azure CLI.

Můžete to ověřit spuštěním az dt --help kdykoli a zobrazit seznam příkazů Azure Digital Twins nejvyšší úrovně, které jsou k dispozici.

Konfigurace ukázkového projektu

Dále nastavte ukázkovou klientskou aplikaci, která bude komunikovat s vaší instancí Azure Digital Twins.

Na počítači přejděte do složky, kterou jste si stáhli dříve z kompletních ukázek služby Azure Digital Twins (a rozbalte ji, pokud jste to ještě neudělali).

Ve složce přejděte do souboru digital-twins-samples-main\AdtSampleApp\SampleClientApp a otevřete soubor appsettings.json . Tento soubor JSON obsahuje konfigurační proměnnou, která je nutná ke spuštění projektu.

V textu souboru změňte instanceUrl adresu URL hostitele instance služby Azure Digital Twins (přidáním https:// před název hostitele, jak je znázorněno níže).

{
  "instanceUrl": "https://<your-Azure-Digital-Twins-instance-host-name>"
}

Soubor uložte a zavřete.

Nastavení místních přihlašovacích údajů Azure

Tato ukázka používá defaultAzureCredential (součást Azure.Identity knihovny) k ověřování uživatelů s instancí Služby Azure Digital Twins, když ji spustíte na místním počítači. Další informace o různých způsobech ověřování klientské aplikace pomocí služby Azure Digital Twins najdete v tématu Psaní ověřovacího kódu aplikace.

Pomocí DefaultAzureCredentialtéto ukázky vyhledáte přihlašovací údaje ve vašem místním prostředí, jako je přihlášení k Azure v místním Azure CLI nebo v sadě Visual Studio nebo Visual Studio Code. Z tohoto důvodu byste se měli k Azure přihlásit místně prostřednictvím jednoho z těchto mechanismů, abyste pro ukázku nastavili přihlašovací údaje.

Pokud ke spouštění ukázek kódu používáte Visual Studio nebo Visual Studio Code, ujistěte se, že jste k ho editoru přihlášeni pomocí stejných přihlašovacích údajů Azure, které chcete použít pro přístup k vaší instanci Azure Digital Twins. Pokud používáte místní okno rozhraní příkazového řádku, spusťte az login příkaz pro přihlášení ke svému účtu Azure. Potom byste při spuštění ukázky kódu měli být automaticky ověřeni.

Začínáme se scénářem vytváření

Ukázkový projekt použitý v tomto kurzu představuje skutečný scénář budovy, který obsahuje podlahu, místnost a termostatické zařízení. Tyto komponenty budou digitálně reprezentovány v instanci Azure Digital Twins, která se pak připojí ke službě IoT Hub, Event Grid a dvě funkce Azure, aby bylo možné přesun dat.

Níže je diagram znázorňující celý scénář.

Nejprve vytvoříte instanci Služby Azure Digital Twins (oddíl A v diagramu) a pak nastavíte tok telemetrických dat zařízení do digitálních dvojčat (šipka B) a pak nastavíte šíření dat prostřednictvím grafu dvojčat (šipka C).

Diagram of the full building scenario, which shows the data flowing from a device into and out of Azure Digital Twins through various Azure services.

Abyste mohli tento scénář projít, budete pracovat s komponentami předem napsané ukázkové aplikace, kterou jste si stáhli dříve.

Tady jsou komponenty implementované ukázkovou aplikací AdtSampleApp ve scénáři sestavení:

  • Ověřování zařízení
  • Příklady použití sady .NET (C#) SDK (najdete v souboru CommandLoop.cs)
  • Rozhraní konzoly pro volání rozhraní API služby Azure Digital Twins
  • SampleClientApp – Ukázkové řešení Azure Digital Twins
  • SampleFunctionsApp – aplikace Azure Functions, která aktualizuje graf Služby Azure Digital Twins na základě telemetrie zařízení ze služby IoT Hub a událostí Služby Azure Digital Twins

Vytvoření instance předem vytvořeného grafu dvojčete

Nejprve použijete řešení AdtSampleApp z ukázkového projektu k sestavení kompletního scénáře Azure Digital Twins (část A):

Diagram of an excerpt from the full building scenario diagram highlighting the Azure Digital Twins instance section.

Otevřete okno místní konzoly a přejděte do složky digital-twins-samples-main\AdtSampleApp\SampleClientApp. Spusťte projekt SampleClientApp pomocí tohoto příkazu dotnet:

dotnet run

Projekt se spustí, provede ověření a počká na příkaz. V této konzole spusťte další příkaz, který vytvoří instanci ukázkového řešení Azure Digital Twins.

Důležité

Pokud už máte v instanci služby Azure Digital Twins digitální dvojčata a relace, spuštěním tohoto příkazu je odstraníte a nahradíte je dvojčaty a relacemi pro ukázkový scénář.

SetupBuildingScenario

Výstupem tohoto příkazu je řada potvrzovacích zpráv, protože se vytvoří a připojí tři digitální dvojčata v instanci služby Azure Digital Twins: podlaha s názvem floor1, místnost s názvem room21 a senzor teploty s názvem termostat67. Tato digitální dvojčata představují entity, které by existovaly v reálném prostředí.

Jsou propojené prostřednictvím relací do následujícího grafu dvojčete. Graf dvojčat představuje prostředí jako celek, včetně toho, jak entity vzájemně komunikují a vzájemně souvisí.

Diagram showing that floor1 contains room21, and room21 contains thermostat67.

Spuštěním následujícího příkazu můžete ověřit dvojčata vytvořená pomocí následujícího příkazu, který se dotazuje připojené instance služby Azure Digital Twins pro všechna digitální dvojčata, která obsahuje:

Query

Teď můžete ukončit spuštění projektu. Okno konzoly ale nechte otevřené v tomto umístění, protože tuto aplikaci použijete znovu později v kurzu.

Nastavení ukázkové aplikace funkcí

Dalším krokem je nastavení aplikace Azure Functions, která se použije v průběhu tohoto kurzu ke zpracování dat. Aplikace funkcí SampleFunctionsApp obsahuje dvě funkce:

  • ProcessHubToDTEvents: zpracovává příchozí data ioT Hubu a odpovídajícím způsobem aktualizuje službu Azure Digital Twins.
  • ProcessDTRoutedData: zpracovává data z digitálních dvojčat a odpovídajícím způsobem aktualizuje nadřazená dvojčata ve službě Azure Digital Twins.

V této části publikujete předem napsanou aplikaci funkcí a zajistíte, aby aplikace funkcí získala přístup ke službě Azure Digital Twins tím, že jí přiřadíte identitu Microsoft Entra.

Aplikace funkcí je součástí staženého ukázkového projektu umístěného ve složce digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp .

Publikování aplikace

Pokud chcete publikovat aplikaci funkcí do Azure, budete muset vytvořit účet úložiště, pak vytvořit aplikaci funkcí v Azure a nakonec publikovat funkce do aplikace funkcí Azure. Tato část tyto akce dokončí pomocí Azure CLI. V každém příkazu nahraďte všechny zástupné symboly v úhlových závorkách podrobnostmi o vašich vlastních prostředcích.

  1. Spuštěním následujícího příkazu vytvořte účet úložiště Azure:

    az storage account create --name <name-for-new-storage-account> --location <location> --resource-group <resource-group> --sku Standard_LRS
    
  2. Spuštěním následujícího příkazu vytvořte aplikaci funkcí Azure:

    az functionapp create --name <name-for-new-function-app> --storage-account <name-of-storage-account-from-previous-step> --functions-version 4 --consumption-plan-location <location> --runtime dotnet-isolated --runtime-version 7 --resource-group <resource-group>
    
  3. V dalším kroku funkce zazipujete a publikujete je do nové aplikace funkcí Azure.

    1. Otevřete na počítači okno konzoly a přejděte do složky digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp uvnitř staženého ukázkového projektu.

    2. V konzole spusťte následující příkaz, který projekt publikuje místně:

      dotnet publish -c Release -o publish
      

      Tento příkaz publikuje projekt do adresáře digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish .

    3. Pomocí upřednostňované metody vytvořte zip publikovaných souborů, které se nacházejí uvnitřadresáře digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp\publish . Pojmenujte složku zip publish.zip.

      Důležité

      Ujistěte se, že zazipovaná složka neobsahuje další vrstvu pro samotnou složku publikování . Měl by obsahovat pouze obsah, který byl uvnitř složky publikování .

      Tady je obrázek, jak může vypadat obsah souboru ZIP (může se změnit v závislosti na vaší verzi .NET).

      Screenshot of File Explorer in Windows showing the contents of the publish zip folder.

    Teď můžete zavřít okno místní konzoly, které jste použili k přípravě projektu. Poslední krok se provede v Azure CLI.

  4. Spuštěním následujícího příkazu v Azure CLI nasaďte publikované a zazipované funkce do aplikace funkcí Azure:

    az functionapp deployment source config-zip --resource-group <resource-group> --name <name-of-your-function-app> --src "<full-path-to-publish.zip>"
    

    Tip

    Pokud používáte Azure CLI místně, můžete k souboru ZIP na počítači přistupovat přímo pomocí jeho cesty na počítači.

    Pokud používáte Azure Cloud Shell, nahrajte soubor ZIP do Cloud Shellu pomocí tohoto tlačítka před spuštěním příkazu:

    Screenshot of the Azure Cloud Shell highlighting how to upload files.

    V tomto případě se soubor nahraje do kořenového adresáře vašeho úložiště Cloud Shell, takže na soubor můžete odkazovat přímo podle názvu --src parametru příkazu (jako v, --src publish.zip).

    Úspěšné nasazení bude reagovat stavovým kódem 202 a výstupem objektu JSON obsahujícího podrobnosti o nové funkci. Úspěšné nasazení můžete potvrdit vyhledáním tohoto pole ve výsledku:

    "provisioningState": "Succeeded",
    

Funkce by se teď měly publikovat do aplikace funkcí v Azure. K ověření úspěšného publikování obou funkcí můžete použít následující příkazy rozhraní příkazového řádku. Každý příkaz obsahuje zástupné symboly pro vaši skupinu prostředků a název vaší aplikace funkcí. Příkazy vytisknou informace o funkcích ProcessDTRoutedData a ProcessHubToDTEvents, které byly publikovány .

az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessDTRoutedData
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name ProcessHubToDTEvents

V dalším kroku bude vaše aplikace funkcí muset mít správná oprávnění pro přístup k vaší instanci služby Azure Digital Twins. Tento přístup nakonfigurujete v další části.

Konfigurace oprávnění pro aplikaci funkcí

Pro přístup k instanci služby Azure Digital Twins je potřeba nastavit dvě nastavení, z nichž obě je možné provést pomocí Azure CLI.

Přiřazení přístupové role

První nastavení dává aplikaci funkcí roli Vlastník dat Azure Digital Twins v instanci Azure Digital Twins. Tato role se vyžaduje pro všechny uživatele nebo funkce, které chtějí v instanci provádět mnoho aktivit roviny dat. Další informace o přiřazeních zabezpečení a rolí najdete v tématu Zabezpečení pro řešení Azure Digital Twins.

  1. Pomocí následujícího příkazu vytvořte identitu přiřazenou systémem pro funkci. Výstup zobrazí podrobnosti o vytvořené identitě. Poznamenejte si pole principalId ve výstupu, které použijete v dalším kroku.

    az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>
    
  2. Pomocí hodnoty principalId v následujícím příkazu přiřaďte identitu aplikace funkcí roli Vlastník dat služby Azure Digital Twins pro vaši instanci Azure Digital Twins.

    az dt role-assignment create --resource-group <your-resource-group> --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
    

Výsledkem tohoto příkazu jsou informace o přiřazení role, které jste vytvořili. Aplikace funkcí teď má oprávnění pro přístup k datům v instanci služby Azure Digital Twins.

Konfigurace nastavení aplikace

Druhé nastavení vytvoří proměnnou prostředí pro funkci s adresou URL vaší instance Azure Digital Twins. Kód funkce použije hodnotu této proměnné k odkazování na vaši instanci. Další informace o proměnných prostředí najdete v tématu Správa aplikace funkcí.

Spusťte následující příkaz a vyplňte zástupné symboly podrobnostmi o prostředcích.

az functionapp config appsettings set --resource-group <your-resource-group> --name <your-function-app-name> --settings "ADT_SERVICE_URL=https://<your-Azure-Digital-Twins-instance-host-name>"

Výstup je seznam nastavení pro funkci Azure Functions, která by teď měla obsahovat položku s názvem ADT_SERVICE_URL.

Zpracování simulované telemetrie ze zařízení IoT Hubu

Graf Azure Digital Twins je určený k řízení telemetrií ze skutečných zařízení.

V tomto kroku připojíte simulované termostatové zařízení zaregistrované ve službě IoT Hub k digitálnímu dvojčeti, které ho představuje ve službě Azure Digital Twins. Vzhledem k tomu, že simulované zařízení vysílá telemetrii, budou data směrována prostřednictvím funkce Azure ProcessHubToDTEvents , která aktivuje odpovídající aktualizaci v digitálním dvojčeti. Digitální dvojče tak zůstane aktuální s daty skutečného zařízení. V Azure Digital Twins se proces směrování dat událostí z jednoho místa do druhého nazývá směrování událostí.

Zpracování simulované telemetrie probíhá v této části kompletního scénáře (šipka B):

Diagram of an excerpt from the full building scenario diagram highlighting the section that shows elements before Azure Digital Twins.

Tady jsou akce, které dokončíte, abyste nastavili toto připojení zařízení:

  1. Vytvoření centra IoT, které bude spravovat simulované zařízení
  2. Připojení ioT Hubu k příslušné funkci Azure nastavením odběru událostí
  3. Registrace simulovaného zařízení v IoT Hubu
  4. Spuštění simulovaného zařízení a generování telemetrie
  5. Zobrazení živých výsledků dotazem služby Azure Digital Twins

Vytvoření instance IoT Hubu

Služba Azure Digital Twins je navržená tak, aby fungovala společně se službou IoT Hub, službou Azure pro správu zařízení a jejich dat. V tomto kroku nastavíte centrum IoT, které bude spravovat ukázkové zařízení v tomto kurzu.

V Azure CLI pomocí tohoto příkazu vytvořte nové centrum IoT:

az iot hub create --name <name-for-your-IoT-hub> --resource-group <your-resource-group> --sku S1

Výstupem tohoto příkazu jsou informace o vytvořeném centru IoT.

Uložte název, který jste zadali do centra IoT. Budete jej později potřebovat.

Připojení IoT Hubu do funkce Azure

Dále propojte centrum IoT s funkcí Azure ProcessHubToDTEvents v aplikaci funkcí, kterou jste publikovali dříve, aby data mohly proudit ze zařízení ve službě IoT Hub prostřednictvím funkce, která aktualizuje Azure Digital Twins.

Uděláte to tak, že ve službě IoT Hub vytvoříte odběr událostí s funkcí Azure jako koncovým bodem. Tím se funkce přihlásí k odběru událostí, ke které dochází ve službě IoT Hub.

K vytvoření odběru událostí použijte následující příkaz rozhraní příkazového řádku. Existuje zástupný symbol, který můžete zadat název odběru událostí a můžete také zadat ID předplatného, skupinu prostředků, název centra IoT a název vaší aplikace funkcí.

az eventgrid event-subscription create --name <name-for-hub-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Devices/IotHubs/<your-IoT-hub> --included-event-types Microsoft.Devices.DeviceTelemetry --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessHubToDTEvents

Výstup zobrazí informace o vytvořeném odběru událostí. Ověřením hodnoty ve výsledku můžete ověřit, že se operace úspěšně provisioningState dokončila:

"provisioningState": "Succeeded",

Tip

Pokud příkaz vrátí chybu poskytovatele prostředků, přidejte Microsoft.EventGrid jako poskytovatele prostředků do vašeho předplatného. Můžete to provést na webu Azure Portal podle pokynů v části Registrace poskytovatele prostředků.

Registrace simulovaného zařízení ve službě IoT Hub

Tato část vytvoří reprezentaci zařízení ve službě IoT Hub s termostatem ID 67. Simulované zařízení se připojí k této reprezentaci, což je způsob, jakým události telemetrie přejdou ze zařízení do IoT Hubu. Centrum IoT je místo, kde naslouchá předplacená funkce Azure z předchozího kroku, připravená k vyzvednutí událostí a pokračování ve zpracování.

V Azure CLI vytvořte zařízení ve službě IoT Hub pomocí následujícího příkazu:

az iot hub device-identity create --device-id thermostat67 --hub-name <your-IoT-hub-name> --resource-group <your-resource-group>

Výstupem jsou informace o vytvořeném zařízení.

Konfigurace a spuštění simulace

Následně nakonfigurujte simulátor zařízení, aby posílal data do instance IoT Hubu.

Začněte získáním připojovací řetězec IoT Hubu pomocí následujícího příkazu. Hodnota připojovací řetězec začne HostName=.

az iot hub connection-string show --hub-name <your-IoT-hub-name>

Pak načtěte připojovací řetězec zařízení pomocí tohoto příkazu:

az iot hub device-identity connection-string show --device-id thermostat67 --hub-name <your-IoT-hub-name>

Dále tyto hodnoty zapojte do kódu simulátoru zařízení v místním projektu a připojte simulátor k tomuto zařízení IoT Hubu a ioT Hubu.

Přejděte na místní počítač do stažené ukázkové složky a do složky digital-twins-samples-main\DeviceSimulator\DeviceSimulator . Otevřete soubor AzureIoTHub.cs pro úpravy. Změňte následující připojovací řetězec hodnoty na hodnoty, které jste shromáždili výše:

private const string iotHubConnectionString = "<your-hub-connection-string>";
//...
private const string deviceConnectionString = "<your-device-connection-string>";

Uložte soubor.

Teď, pokud chcete zobrazit výsledky simulace dat, kterou jste nastavili, otevřete nové okno místní konzoly a přejděte na digital-twins-samples-main\DeviceSimulator\DeviceSimulator.

Poznámka:

Teď byste měli mít dvě otevřená okna konzoly: jednu, která je otevřená ve složce DeviceSimulator\DeviceSimulator , a jedna z předchozích oken, která je stále otevřená ve složce AdtSampleApp\SampleClientApp .

Pomocí následujícího příkazu dotnet spusťte projekt simulátoru zařízení:

dotnet run

Projekt začne běžet a začne zobrazovat simulované zprávy telemetrie teploty. Tyto zprávy se odesílají do IoT Hubu, kde se pak vyberou a zpracují pomocí funkce Azure.

Screenshot of the console output of the device simulator showing temperature telemetry being sent.

V této konzole nemusíte dělat nic jiného, ale nechte ho spuštěný, když dokončíte další kroky.

Zobrazení výsledků ve službě Azure Digital Twins

Funkce ProcessHubToDTEvents , kterou jste publikovali dříve, naslouchá datům služby IoT Hub a volá rozhraní API služby Azure Digital Twins, aby aktualizovalo Temperature vlastnost dvojčete termostat67.

Pokud chcete zobrazit data ze strany služby Azure Digital Twins, přepněte do okna vaší další konzoly, které je otevřené do složky AdtSampleApp\SampleClientApp . Spusťte projekt SampleClientApp pomocí dotnet runpříkazu .

dotnet run

Jakmile je projekt spuštěný a přijímá příkazy, spusťte následující příkaz, abyste získali teploty hlášené termostatem digitálního dvojčete67:

ObserveProperties thermostat67 Temperature

Každé dvě sekundy by se měly zobrazit teploty aktualizované za provozu z instance Služby Azure Digital Twins, které se protokolují do konzoly. Měly by odrážet hodnoty, které simulátor dat generuje (můžete umístit okna konzoly vedle sebe a ověřit, zda jsou hodnoty souřadnice).

Poznámka:

Může trvat několik sekund, než se data ze zařízení rozšíří do dvojčete. Prvních pár čtení teploty se může zobrazit jako 0, než data začnou dorazit.

Screenshot of the console output showing log of temperature messages from digital twin thermostat67.

Jakmile ověříte, že protokolování teploty za provozu funguje úspěšně, můžete zastavit spouštění obou projektů. Nechte okna konzoly otevřená, protože je budete později v kurzu používat znovu.

Šíření událostí Azure Digital Twins prostřednictvím grafu

Zatím v tomto kurzu jste viděli, jak je možné službu Azure Digital Twins aktualizovat z dat externích zařízení. Dále uvidíte, jak se můžou změny jednoho digitálního dvojčete rozšířit prostřednictvím grafu Azure Digital Twins – jinými slovy, jak aktualizovat dvojčata z interních dat služby.

K tomu použijete funkci Azure ProcessDTRoutedData k aktualizaci dvojčete místnosti při aktualizaci připojeného dvojčete termostatu. Funkce aktualizace probíhá v této části kompletního scénáře (šipka C):

Diagram of an excerpt from the full building scenario diagram highlighting the section that shows the elements after Azure Digital Twins.

Tady jsou akce, které dokončíte a nastavíte tento tok dat:

  1. Vytvoření tématu Event Gridu pro povolení přesunu dat mezi službami Azure
  2. Vytvoření koncového bodu ve službě Azure Digital Twins, který připojí instanci k tématu Event Gridu
  3. Nastavení trasy v rámci služby Azure Digital Twins, která odesílá události změny vlastností dvojčete do koncového bodu
  4. Nastavte funkci Azure, která naslouchá tématu Event Gridu na koncovém bodu, přijímá události změny vlastností dvojčete, které se tam odesílají, a odpovídajícím způsobem aktualizuje další dvojčata v grafu.

Vytvoření tématu Event Gridu

Event Grid je služba Azure, která pomáhá směrovat a doručovat události ze služeb Azure na jiná místa v Azure. Můžete vytvořit téma Event Gridu, které bude shromažďovat určité události ze zdroje, a předplatitelé pak můžou naslouchat tématu a přijímat události při jejich procházení.

Spuštěním následujícího příkazu v Azure CLI vytvořte téma Event Gridu:

az eventgrid topic create --resource-group <your-resource-group> --name <name-for-your-event-grid-topic> --location <region>

Výstupem tohoto příkazu jsou informace o tématu Event Gridu, které jste vytvořili. Uložte název, který jste zadali do tématu Event Gridu, protože ho použijete později.

Vytvoření koncového bodu

Dále ve službě Azure Digital Twins vytvořte koncový bod Event Gridu, který připojí vaši instanci k tématu Event Gridu. Použijte následující příkaz a podle potřeby vyplňte název tématu Event Gridu z předchozího kroku a další zástupná pole.

az dt endpoint create eventgrid --dt-name <Azure-Digital-Twins-instance> --eventgrid-resource-group <your-resource-group> --eventgrid-topic <your-event-grid-topic> --endpoint-name <name-for-your-Azure-Digital-Twins-endpoint>

Výstupem tohoto příkazu jsou informace o vytvořeném koncovém bodu.

provisioningState Vyhledejte pole ve výstupu a zkontrolujte, jestli je hodnota Úspěch.

Screenshot of the result of the endpoint query in the Cloud Shell of the Azure portal, showing the endpoint with a provisioningState of Succeeded.

Může také říct "Zřizování", což znamená, že se koncový bod stále vytváří. Pokud ano, počkejte několik sekund a spuštěním následujícího příkazu zkontrolujte stav koncového bodu. Opakujte, dokud se provisioningState nezobrazí text "Úspěch".

az dt endpoint show --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> 

Uložte název koncového bodu, protože ho použijete později.

Vytvoření trasy

Dále vytvořte trasu Azure Digital Twins, která odesílá události do vytvořeného koncového bodu Event Gridu.

Použijte následující příkaz rozhraní příkazového řádku a podle potřeby vyplňte název koncového bodu z předchozího kroku a další zástupná pole. Tento příkaz předá všechny události, ke kterým dochází v grafu dvojčete.

Tip

Události můžete omezit jenom na konkrétní, pokud chcete, pomocí filtrů.

az dt route create --dt-name <your-Azure-Digital-Twins-instance> --endpoint-name <your-Azure-Digital-Twins-endpoint> --route-name <name-for-your-Azure-Digital-Twins-route>

Výstupem tohoto příkazu jsou některé informace o trase, kterou jste vytvořili.

Poznámka:

Koncové body (z předchozího kroku) musí být dokončené zřizování, abyste mohli nastavit trasu událostí, která je používá. Pokud se vytvoření trasy nezdaří, protože koncové body nejsou připravené, počkejte několik minut a zkuste to znovu.

Připojení funkce Azure

Dále se přihlaste k odběru funkce Azure ProcessDTRoutedData k tématu Event Gridu, které jste vytvořili dříve, aby telemetrická data mohly proudit z dvojčete termostatu67 prostřednictvím tématu Event Gridu do funkce, která se vrátí do služby Azure Digital Twins a odpovídajícím způsobem aktualizuje dvojče místnosti 21.

Uděláte to tak, že vytvoříte odběr Event Gridu, který odesílá data z tématu Event Gridu, které jste vytvořili dříve do funkce Azure ProcessDTRoutedData .

K vytvoření odběru událostí použijte následující příkaz rozhraní příkazového řádku. Existuje zástupný symbol, který můžete zadat název pro toto odběry událostí a můžete také zadat ID předplatného, skupinu prostředků, název tématu Event Gridu a název vaší aplikace funkcí.

az eventgrid event-subscription create --name <name-for-topic-event-subscription> --event-delivery-schema eventgridschema --source-resource-id /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<your-subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app>/functions/ProcessDTRoutedData

Spuštění simulace a zobrazení výsledků

Události by teď měly mít možnost toku ze simulovaného zařízení do služby Azure Digital Twins a prostřednictvím grafu Azure Digital Twins aktualizovat dvojčata podle potřeby. V této části znovu spustíte simulátor zařízení, abyste spustili úplný tok událostí, který jste nastavili, a dotazem služby Azure Digital Twins zobrazte živé výsledky.

Přejděte do okna konzoly, které je otevřené do složky DeviceSimulator\DeviceSimulator , a spusťte projekt simulátoru zařízení s dotnet run.

Stejně jako při prvním spuštění simulátoru zařízení se projekt spustí a zobrazí simulované zprávy telemetrie teploty. Tyto události procházejí tokem, který jste nastavili dříve, aby aktualizovalo dvojče termostat67, a pak prochází tok, který jste nastavili nedávno, aby se dvojče místnosti21 aktualizovalo tak, aby odpovídalo.

Screenshot of the console output of the device simulator showing temperature telemetry being sent.

V této konzole nemusíte dělat nic jiného, ale nechte ho spuštěný, když dokončíte další kroky.

Pokud chcete zobrazit data ze strany služby Azure Digital Twins, přejděte do okna druhé konzoly, které je otevřené ve složce AdtSampleApp\SampleClientApp , a spusťte projekt SampleClientApp s dotnet run.

Jakmile je projekt spuštěný a přijímá příkazy, spusťte následující příkaz, abyste získali teploty hlášené termostatem digitálního dvojčete 67 i místností digitálního dvojčete21.

ObserveProperties thermostat67 Temperature room21 Temperature

Každé dvě sekundy by se měly zobrazit teploty aktualizované za provozu z instance Služby Azure Digital Twins, které se protokolují do konzoly. Všimněte si, že teplota místnosti 21 se aktualizuje tak, aby odpovídala aktualizacím termostatu67.

Screenshot of the console output showing a log of temperature messages, from a thermostat and a room.

Jakmile ověříte, že protokolování živých teplot z vaší instance funguje úspěšně, můžete zastavit spouštění obou projektů. Obě okna konzoly můžete také zavřít, protože kurz je nyní dokončený.

Přehled

Tady je přehled scénáře, který jste vytvořili v tomto kurzu.

  1. Instance Azure Digital Twins digitálně představuje podlahu, místnost a termostat (znázorněný oddílem A v následujícím diagramu)
  2. Telemetrie simulovaného zařízení se odesílá do ioT Hubu , kde funkce Azure ProcessHubToDTEvents naslouchá událostem telemetrie. Funkce Azure ProcessHubToDTEvents používá informace v těchto událostech k nastavení Temperature vlastnosti termostat67 (šipka B v diagramu).
  3. Události změny vlastností ve službě Azure Digital Twins se směrují do tématu Event Gridu, kde funkce Azure ProcessDTRoutedData naslouchá událostem. Funkce Azure ProcessDTRoutedData používá informace v těchto událostech k nastavení Temperature vlastnosti v místnosti 21 (šipka C v diagramu).

Diagram from the beginning of the article showing the full building scenario.

Vyčištění prostředků

Po dokončení tohoto kurzu můžete v závislosti na tom, co chcete udělat dál, vybrat, které prostředky chcete odebrat.

  • Pokud nepotřebujete žádné prostředky, které jste vytvořili v tomto kurzu, můžete pomocí příkazu az group delete CLI odstranit instanci Azure Digital Twins a všechny ostatní prostředky z tohoto článku. Tím se odstraní všechny prostředky Azure ve skupině prostředků i samotná skupina prostředků.

    Důležité

    Odstranění skupiny prostředků je nevratné. Skupina prostředků i všechny prostředky v ní obsažené se trvale odstraní. Ujistěte se, že nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky.

    Otevřete Azure Cloud Shell nebo místní okno rozhraní příkazového řádku a spuštěním následujícího příkazu odstraňte skupinu prostředků a vše, co obsahuje.

    az group delete --name <your-resource-group>
    
  • Pokud chcete pokračovat v používání instance služby Azure Digital Twins, kterou jste nastavili v tomto článku, ale vymažte některé nebo všechny jeho modely, dvojčata a relace, můžete pomocí příkazů az dt CLI odstranit prvky, které chcete odebrat.

    Tato možnost neodebere žádné další prostředky Azure vytvořené v tomto kurzu (IoT Hub, aplikace Azure Functions atd.). Tyto příkazy můžete odstranit jednotlivě pomocí příkazů dt vhodných pro každý typ prostředku.

Můžete také odstranit složku projektu z místního počítače.

Další kroky

V tomto kurzu jste vytvořili kompletní scénář, který ukazuje, že služba Azure Digital Twins je řízená živými daty zařízení.

V dalším kroku se podívejte do dokumentace k konceptům a získejte další informace o prvech, se kterými jste pracovali v tomto kurzu: