Nastavení zpracování událostí typu twin-to-twin

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, na která mají vliv tyto informace. Toto zpracování událostí vám pomůže vytvořit plně propojený graf Služby 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, rozšíří 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.

Požadavky

Pokud chcete nastavit zpracování dvojčete na dvojčete, budete potřebovat instanci Azure Digital Twins, se kterou budete pracovat. 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 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 je graf dvojčete řízený telemetrií živých zařízení.

Odesílání událostí dvojčete 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žijí 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 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.

Vytvoření funkce Azure pro aktualizaci dvojčat

Dále vytvořte funkci Azure, která bude naslouchat koncovému bodu a přijímat 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.

  1. Nejprve vytvořte nový projekt Azure Functions.

    Můžete to udělat pomocí sady Visual Studio (pokyny najdete v tématu Vývoj funkcí Azure pomocí sady Visual Studio), Visual Studio Code (pokyny najdete v tématu Vytvoření funkce jazyka C# v Azure pomocí editoru Visual Studio Code) nebo Azure CLI (pokyny najdete v tématu Vytvoření funkce jazyka C# v Azure z příkazového řádku).

  2. Do projektu přidejte následující balíčky (můžete použít správce balíčků NuGet sady Visual Studio nebo příkaz dotnet add package v nástroji příkazového řádku).

  3. Vyplňte logiku funkce. Vzorový kód funkce si můžete prohlédnout v několika scénářích v úložišti azure-digital-twins-getting-started , abyste mohli začít.

  4. 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 publikování funkce pomocí editoru Visual Studio Code najdete v tématu Vytvoření funkce jazyka C# v Azure pomocí editoru 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.

Po dokončení procesu publikování funkce můžete pomocí tohoto příkazu Azure CLI ověřit, že publikování proběhlo úspěšně. Pro vaši skupinu prostředků jsou zástupné symboly, název vaší aplikace funkcí a název konkrétní funkce. Příkaz vytiskne informace o vaší funkci.

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

Konfigurace aplikace Function App

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 k ní přístup.

V Azure Cloud Shellunebo místním Azure CLI spusťte následující příkazy.

Poznámka:

Tuto část 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 uživatelských přístupů Správa istrator a přispěvatel. 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. Aby se zajistilo předání nosného tokenu, udělte aplikaci funkcí roli Vlastník dat Azure Digital Twins pro vaši instanci služby Azure Digital Twins, která aplikaci funkcí udělí oprávnění k provádění aktivit roviny dat v instanci.

  1. 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 jeho podrobnosti). Poznamenejte si principalId pole 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>	
    
  2. principalId Pomocí hodnoty v následujícím příkazu dejte funkci roli Vlastník dat Azure Digital Twins pro vaši 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 bude vaše funkce používat 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í funkci do koncového bodu

Dále se přihlaste k odběru funkce Azure ke koncovému bodu Event Gridu, který jste vytvořili dříve. Tím zajistíte, aby data mohly 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 rozhraní příkazového řádku a vyplňte zástupné symboly id předplatného, skupiny prostředků, aplikace funkcí a názvu 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ěření, že tok funguje, a to tak, že aktualizuje dvojčete a zkontroluje, jestli se související dvojčata aktualizují podle logiky 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.