Směrování událostí Azure Digital Twins

Tento článek popisuje proces, který služba Azure Digital Twins používá k odesílání dat událostí, a to jak pro interní směrování událostí v rámci služby Azure Digital Twins, tak pro externí odesílání dat událostí do podřízených služeb nebo připojených výpočetních prostředků mimo službu.

Směrování oznámení událostí ze služby Azure Digital Twins je dvoustupňový proces: vytvoření koncových bodů a následné vytvoření tras událostí pro odesílání dat do těchto koncových bodů. Tento článek se podrobněji zabývá jednotlivými koncepty. Vysvětluje také, co se stane, když se koncovému bodu nepodaří včas doručit událost (proces označovaný jako nedoručení dopisů).

Přehled směrování událostí

Pro odesílání dat Azure Digital Twins existují dva hlavní scénáře a k obojímu se používají trasy událostí:

  • Odesílání dat událostí z jednoho dvojčete v grafu Azure Digital Twins do jiného. Pokud se například změní vlastnost jednoho digitálního dvojčete, můžete na základě aktualizovaných dat upozornit jiné digitální dvojče a aktualizovat ho.
  • Odesílání dat mimo Azure Digital Twins do podřízených datových služeb pro větší úložiště nebo zpracování Pokud už například používáte Azure Maps, možná budete chtít přispět daty Azure Digital Twins k vylepšení vašeho řešení pomocí integrovaného modelování nebo dotazů.

Pro jakýkoli cíl události funguje trasa události tak, že odesílá data událostí z Azure Digital Twins do vlastních koncových bodů ve vašich odběrech. Pro koncové body se v současné době podporují tři služby Azure: Event Hubs, Event Grid a Service Bus. Každá z těchto služeb Azure může být připojená k jiným službám a funguje jako prostředník, který odesílá data do konečných cílů, jako je Azure Maps, nebo zpět do Azure Digital Twins pro závislé aktualizace grafu.

Následující diagram znázorňuje tok dat událostí prostřednictvím většího řešení IoT, které zahrnuje odesílání dat Azure Digital Twins prostřednictvím koncových bodů do jiných služeb Azure a také zpět do Azure Digital Twins:

Diagram směrování dat služby Azure Digital Twins přes koncové body do několika podřízených služeb

Pro výchozí přenos dat mimo Azure Digital Twins jsou typickými podřízenými cíli tras událostí Time Series Insights, Azure Maps, úložiště a analytická řešení. Azure Digital Twins implementuje alespoň jedno doručení dat vysílaných do výchozích služeb.

Pokud chcete směrovat interní události digitálních dvojčat v rámci stejného řešení Azure Digital Twins, pokračujte k další části.

Směrování interních událostí digitálního dvojčete

Trasy událostí jsou mechanismus, který se používá ke zpracování událostí v grafu dvojčat a odesílání dat z digitálního dvojčete do digitálního dvojčete. Tento druh zpracování událostí se provádí propojením tras událostí přes Event Grid s výpočetními prostředky, jako je Azure Functions. Tyto funkce pak definují, jak mají dvojčata přijímat události a reagovat na ně.

Když chce výpočetní prostředek upravit graf dvojčat na základě události, kterou přijal prostřednictvím trasy událostí, je užitečné, aby předem věděl, které dvojče by měl upravit. Zpráva o události obsahuje také ID zdrojového dvojčete, které zprávu odeslalo, aby výpočetní prostředek mohl pomocí dotazů nebo procházet relace k vyhledání cílového dvojčete pro požadovanou operaci.

Výpočetní prostředek také musí nezávisle na sobě vytvořit oprávnění k zabezpečení a přístupu.

Postup nastavení funkce Azure pro zpracování událostí digitálního dvojčete najdete v tématu Nastavení zpracování událostí typu twin-to-twin.

Vytváření koncových bodů

Aby mohli vývojáři definovat trasu události, musí nejdřív definovat koncové body. Koncový bod je cíl mimo Azure Digital Twins, který podporuje připojení trasy. Mezi podporované cíle patří:

  • Vlastní témata Event Gridu
  • Event Hubs
  • Service Bus

K vytvoření koncového bodu můžete použít rozhraní REST API služby Azure Digital Twins, příkazy rozhraní příkazového řádku nebo Azure Portal.

Při definování koncového bodu budete muset zadat:

  • Název koncového bodu
  • Typ koncového bodu (Event Grid, Event Hubs nebo Service Bus)
  • Primární připojovací řetězec a sekundární připojovací řetězec pro ověření
  • Cesta k tématu koncového bodu, například your-topic.westus2.eventgrid.azure.net

Volitelně můžete vytvořit koncový bod s ověřováním na základě identity a použít ho se spravovanou identitou přiřazenou systémem nebo uživatelem. Tato možnost je dostupná jenom pro koncové body typu Event Hubs a Service Bus (pro Event Grid se nepodporuje).

Rozhraní API koncových bodů, která jsou k dispozici v řídicí rovině, jsou:

  • Vytvoření koncového bodu
  • Získání seznamu koncových bodů
  • Získání koncového bodu podle názvu
  • Odstranění koncového bodu podle názvu

Podrobné pokyny k vytvoření koncového bodu najdete v tématu Vytvoření koncových bodů.

Vytváření tras událostí

K vytvoření trasy události můžete použít rozhraní REST API služby Azure Digital Twins, příkazy rozhraní příkazového řádku nebo Azure Portal.

Tady je příklad vytvoření trasy událostí v rámci klientské aplikace pomocí CreateOrReplaceEventRouteAsync volání .NET (C#) SDK:

string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
  1. Nejprve se DigitalTwinsEventRoute vytvoří objekt a konstruktor převezme název koncového bodu. Toto endpointName pole identifikuje koncový bod, například Event Hubs, Event Grid nebo Service Bus. Před provedením tohoto volání registrace je potřeba tyto koncové body vytvořit ve vašem předplatném a připojit se k Azure Digital Twins pomocí rozhraní API řídicí roviny.

  2. Objekt trasy událostí má také pole Filtr , které lze použít k omezení typů událostí, které následují po této trase. Filtr umožňuje trasu bez dalšího truefalse filtrování (filtr trasy zakáže).

  3. Tento objekt trasy událostí se pak předá do CreateOrReplaceEventRouteAsyncobjektu spolu s názvem trasy.

Tip

Všechny funkce sady SDK se dodávají v synchronní a asynchronní verzi.

Podrobné pokyny k vytváření tras událostí najdete v tématu Vytváření tras a filtrů.

Nedoručované události

Pokud koncový bod nemůže doručit událost během určitého časového období nebo po několika pokusech o doručení události, může neodeslanou událost odeslat do účtu úložiště. Tento proces se označuje jako nedoručených písmen. Azure Digital Twins provede nedoručenou událost, pokud je splněna jedna z následujících podmínek:

  • Událost se nedoručí v rámci časového období
  • Počet pokusů o doručení události překročil limit.

Pokud je splněna kterákoliv z podmínek, událost se zahodí nebo nedoručí. Ve výchozím nastavení každý koncový bod nezapne funkci nedoručených dopisů. Pokud ho chcete povolit, musíte zadat účet úložiště, který bude při vytváření koncového bodu uchovávat nedoručené události. Pak můžete z tohoto účtu úložiště vyžádat události a vyřešit tak doručení.

Před nastavením umístění nedoručených dopisů musíte mít účet úložiště s kontejnerem. Adresu URL pro tento kontejner zadáte při vytváření koncového bodu. Nedoručované dopisy se poskytují jako adresa URL kontejneru s tokenem SAS. Tento token potřebuje oprávnění pouze write pro cílový kontejner v rámci účtu úložiště. Plně formátovaná adresa URL bude ve formátu: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>

Další informace o tokenech SAS najdete v tématu Udělení omezeného přístupu k prostředkům služby Azure Storage pomocí sdílených přístupových podpisů (SAS).

Informace o tom, jak nastavit koncový bod s nedoručenými písmeny, najdete v tématu Možnosti koncového bodu: Nedoručované dopisy.

Typy zpráv událostí

Různé typy událostí v IoT Hub a Azure Digital Twins vytvářejí různé typy oznámení, jak je popsáno níže.

Typ oznámení Název zdroje směrování Vygenerováno z...
Oznámení o změně digitálního dvojčete Oznámení o změně digitálního dvojčete jakákoli změna vlastnosti digitálního dvojčete
Oznámení o životním cyklu digitálního dvojčete Oznámení o životním cyklu digitálního dvojčete jakákoli operace vytvoření nebo odstranění digitálního dvojčete
Oznámení o změně vztahu digitálního dvojčete Oznámení o změně vztahu digitálního dvojčete jakákoli změna vztahu digitálních dvojčat
Zprávy telemetrie digitálního dvojčete Zprávy telemetrie jakákoli telemetrická zpráva

Další kroky

Pokračujte podrobnými pokyny k nastavení koncových bodů a tras událostí:

Nebo postupujte podle tohoto návodu a nastavte funkci Azure Functions pro zpracování událostí typu twin-to-twin v rámci služby Azure Digital Twins: