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 .zip výběrem tlačítka Kód a následným stažením SOUBORU ZIP.
Tím se stáhne .zip složka 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
Použijte prostředí Bash v Azure Cloud Shellu. Další informace najdete v tématu Rychlý start pro Bash v Azure Cloud Shellu.
Pokud dáváte přednost místnímu spouštění referenčních příkazů rozhraní příkazového řádku, nainstalujte Azure CLI. Pokud používáte Windows nebo macOS, zvažte spuštění Azure CLI v kontejneru Docker. Další informace najdete v tématu Jak spustit Azure CLI v kontejneru Dockeru.
Pokud používáte místní instalaci, přihlaste se k Azure CLI pomocí příkazu az login. Pokud chcete dokončit proces ověřování, postupujte podle kroků zobrazených na terminálu. Další možnosti přihlášení najdete v tématu Přihlášení pomocí Azure CLI.
Po zobrazení výzvy nainstalujte rozšíření Azure CLI při prvním použití. Další informace o rozšířeních najdete v tématu Využití rozšíření v Azure CLI.
Spuštěním příkazu az version zjistěte verzi a závislé knihovny, které jsou nainstalované. Pokud chcete upgradovat na nejnovější verzi, spusťte az upgrade.
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 složky 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í DefaultAzureCredential
té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).
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 (nalezené v 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):
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í.
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.
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
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 --resource-group <resource-group>
V dalším kroku funkce zazipujete a publikujete je do nové aplikace funkcí Azure.
Otevřete na počítači okno konzoly (pokud používáte místní Azure CLI, může to být stejné okno) a přejděte do složky digital-twins-samples-main\AdtSampleApp\SampleFunctionsApp uvnitř staženého ukázkového projektu.
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 .
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 komprimovanou složku 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).
Poslední krok se provede v Azure CLI.
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:
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.
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>
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):
Tady jsou akce, které dokončíte, abyste nastavili toto připojení zařízení:
- Vytvoření centra IoT, které bude spravovat simulované zařízení
- Připojení centra IoT k příslušné funkci Azure nastavením odběru událostí
- Registrace simulovaného zařízení v IoT Hubu
- Spuštění simulovaného zařízení a generování telemetrie
- 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 k funkci 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
Důležité
Tento článek obsahuje postup připojení zařízení pomocí sdíleného přístupového podpisu, označovaného také jako ověřování symetrického klíče. Tato metoda ověřování je vhodná pro testování a vyhodnocení, ale ověřování zařízení pomocí certifikátů X.509 je bezpečnější přístup. Další informace najdete v tématu Zabezpečení osvědčených postupů > zabezpečení připojení.
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.
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 run
pří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.
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):
Tady jsou akce, které dokončíte a nastavíte tento tok dat:
- Vytvoření tématu Event Gridu pro povolení přesunu dat mezi službami Azure
- Vytvoření koncového bodu ve službě Azure Digital Twins, který připojí instanci k tématu Event Gridu
- Nastavení trasy v rámci služby Azure Digital Twins, která odesílá události změny vlastností dvojčete do koncového bodu
- 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.
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.
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.
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.
- 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)
- 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). - 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).
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: