Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek ukazuje, jak odesílat události z dvojčete do dvojčete, aby se při aktualizaci jednoho digitálního dvojčete v grafu mohly aktualizovat také související dvojčata v grafu ovlivněná touto informací. Toto zpracování událostí vám pomůže vytvořit plně propojený graf Azure Digital Twins, ve kterém se data, která přicházejí do Služby Azure Digital Twins z externích zdrojů, jako je IoT Hub, šíří do celého grafu.
Pokud chcete nastavit zpracování událostí typu twin-to-twin, vytvoříte funkci Azure , která sleduje události životního cyklu dvojčat. Funkce rozpozná, které události by měly mít vliv na jiná dvojčata v grafu, a pomocí dat událostí odpovídajícím způsobem aktualizuje ovlivněná dvojčata.
Prerequisites
Pokud chcete nastavit zpracování twin-to-twin, potřebujete instanci Azure Digital Twins. Pokyny k vytvoření instance najdete v tématu Nastavení instance a ověřování služby Azure Digital Twins. Instance by měla obsahovat alespoň dvě dvojčata, mezi kterými chcete odesílat data.
Volitelně můžete chtít nastavit automatické ingestování telemetrie prostřednictvím služby IoT Hub pro vaše dvojčata. Tento proces není nutný k odesílání dat z dvojčete do dvojčete, ale je to důležitá součást kompletního řešení, ve kterém živá telemetrie zařízení řídí graf dvojčete.
Odeslat souběžné události do koncového bodu
Pokud chcete nastavit zpracování událostí typu twin-to-twin, začněte vytvořením koncového bodu ve službě Azure Digital Twins a trasou do daného koncového bodu. Dvojčata procházející aktualizací používají trasu k odesílání informací o událostech aktualizace do koncového bodu (kde je Event Grid může později vyzvednout a předat je do funkce Azure pro zpracování).
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 námět Event Grid pro shromažďování určitých událostí ze zdroje, a předplatitelé pak mohou sledovat tento námět a přijímat události, jakmile přicházejí.
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.
Vyhledejte pole provisioningState ve výstupu a zkontrolujte, jestli je hodnota "Úspěšné."
Může se také objevit text "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.
Note
Koncové body (z předchozího kroku) musí být dokončeny, než budete moci 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.
Vytvoření funkce Azure pro aktualizaci dvojčat
Dále vytvořte funkci Azure, která naslouchá na koncovém bodu a přijímá události dvojčete, které se tam odesílají přes trasu. Logika funkce by měla použít informace v událostech k určení, jaké další dvojčata je potřeba aktualizovat, a pak provést aktualizace.
Nejprve vytvořte nový projekt Azure Functions.
Toto můžete provést pomocí Visual Studio (pokyny naleznete v Develop Azure Functions using Visual Studio), Visual Studio Code (pokyny naleznete v Create a C# function in Azure using Visual Studio Code), nebo Azure CLI (pokyny naleznete v Create a C# function in Azure from the command line).
Přidejte do svého projektu následující balíčky. Použijte správce balíčků Visual Studio NuGet nebo příkaz "dotnet add package" v příkazovém nástroji.
Vyplňte logiku funkce.
Pomocí preferované metody publikujte funkci do Azure.
Pokyny k publikování funkce pomocí sady Visual Studio najdete v tématu Vývoj azure Functions pomocí sady Visual Studio. Pokyny k tomu, jak publikovat funkci pomocí Visual Studio Code, najdete v tématu Vytvoření funkce v C# v Azure pomocí Visual Studio Code. Pokyny k publikování funkce pomocí Azure CLI najdete v tématu Vytvoření funkce jazyka C# v Azure z příkazového řádku.
Jakmile je proces publikování funkce dokončen, můžete použít tento příkaz Azure CLI k ověření, zda bylo publikování úspěšné. Existují zástupné symboly pro vaši skupinu prostředků, název vaší aplikace funkcí a název vaší konkrétní funkce. Příkaz vytiskne informace o funkci.
az functionapp function show --resource-group <your-resource-group> --name <your-function-app> --function-name <your-function>
Nakonfigurujte aplikaci funkce
Než bude vaše funkce mít přístup ke službě Azure Digital Twins, potřebuje určité informace o instanci a oprávnění k přístupu k ní. V této části přiřadíte funkci roli přístupu a nakonfigurujete nastavení aplikace tak, aby ji bylo možné najít a získat přístup k instanci.
V Azure Cloud Shellu nebo místním Azure CLI spusťte následující příkazy.
Note
Tento oddíl musí dokončit uživatel Azure, který má oprávnění ke správě přístupu uživatelů k prostředkům Azure, včetně udělení a delegování oprávnění. Mezi běžné role, které splňují tento požadavek, patří vlastník, správce účtu nebo kombinace správce uživatelských přístupů a přispěvatele. Další informace o požadavcích na oprávnění pro role Azure Digital Twins najdete v tématu Nastavení instance a ověřování.
Přiřazení přístupové role
Funkce Azure vyžaduje předání nosného tokenu. Chcete-li zajistit předání nosného tokenu, udělte funkční aplikaci roli Vlastník dat Azure Digital Twins pro vaši instanci služby Azure Digital Twins, která funkční aplikaci dává oprávnění k realizaci aktivit datové úrovně v instanci.
Pomocí následujícího příkazu vytvořte identitu spravovanou systémem pro vaši funkci (pokud ji už funkce obsahuje, vytiskne tento příkaz podrobnosti). Poznamenejte si
principalIdpole ve výstupu. Toto ID použijete k odkazování na funkci, abyste jí mohli udělit oprávnění v dalším kroku.az functionapp identity assign --resource-group <your-resource-group> --name <your-function-app-name>Pomocí hodnoty
principalIdv následujícím příkazu udělte funkci roli Vlastník dat pro Azure Digital Twins ve vaší instanci Azure Digital Twins.az dt role-assignment create --dt-name <your-Azure-Digital-Twins-instance> --assignee "<principal-ID>" --role "Azure Digital Twins Data Owner"
Konfigurace nastavení aplikace
Dále nastavte adresu URL vaší instance Azure Digital Twins, která bude přístupná vaší funkci nastavením proměnné prostředí.
Tip
Adresa URL instance Azure Digital Twins se provádí přidáním https:// na začátek názvu hostitele vaší instance. Pokud chcete zobrazit název hostitele spolu se všemi vlastnostmi vaší instance, spusťte az dt show --dt-name <your-Azure-Digital-Twins-instance>příkaz .
Následující příkaz nastaví proměnnou prostředí pro adresu URL vaší instance, kterou vaše funkce používá při každém přístupu k instanci.
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>"
Připojení funkce ke koncovému bodu
Dále připojte svou funkci Azure ke koncovému bodu Event Gridu, který jste vytvořili dříve. Tím zajistíte, že data mohou proudit z aktualizovaného dvojčete prostřednictvím tématu Event Gridu do funkce, která může podle potřeby aktualizovat další dvojčata pomocí informací o události.
Pokud se chcete přihlásit k odběru funkce Azure, vytvoříte odběr Event Gridu , který odesílá data z tématu Event Gridu, které jste vytvořili dříve do funkce Azure.
Použijte následující příkaz v příkazovém řádku a vyplňte zástupné symboly pro ID vašeho předplatného, skupinu prostředků, aplikaci funkcí a název funkce.
az eventgrid event-subscription create --name <name-for-your-event-subscription> --source-resource-id /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.EventGrid/topics/<your-event-grid-topic> --endpoint-type azurefunction --endpoint /subscriptions/<subscription-ID>/resourceGroups/<your-resource-group>/providers/Microsoft.Web/sites/<your-function-app-name>/functions/<function-name>
Funkce teď může přijímat události prostřednictvím tématu Event Gridu. Nastavení toku dat je hotové.
Testování a ověření výsledků
Posledním krokem je ověřit, že tok funguje, a to tak, že aktualizujete dvojče a zkontrolujete, zda se související dvojčata aktualizují v souladu s logikou ve vaší funkci Azure.
Pokud chcete proces začít, aktualizujte dvojče, které je zdrojem toku událostí. K aktualizaci můžete použít azure CLI, sadu Azure Digital Twins SDK nebo rozhraní REST API služby Azure Digital Twins .
V dalším kroku zadejte dotaz na instanci služby Azure Digital Twins pro související dvojče. Můžete použít Azure CLI nebo rozhraní REST API služby Azure Digital Twins a sadu SDK. Ověřte, že dvojče přijalo data a aktualizovalo se podle očekávání.
Další kroky
V tomto článku nastavíte zpracování událostí typu twin-to-twin ve službě Azure Digital Twins. Dále nastavte funkci Azure, která aktivuje tento tok automaticky na základě příchozí telemetrie ze zařízení IoT Hubu: Ingestování telemetrie ze služby IoT Hub.