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 odesílání dat událostí externě 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 známý jako nedoručování nedoručených dopisů).
Přehled směrování událostí
Existují dva hlavní scénáře pro odesílání dat Azure Digital Twins a trasy událostí se používají k dosažení obou těchto postupů:
- Odesílání dat událostí z jednoho dvojčete v grafu Azure Digital Twins do druhého Pokud se například změní vlastnost jednoho digitálního dvojčete, můžete na základě aktualizovaných dat upozornit a aktualizovat další digitální dvojče.
- Odesílání dat mimo Službu 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, můžete chtít přispět daty Azure Digital Twins k vylepšení řešení pomocí integrovaného modelování nebo dotazů.
V případě jakéhokoli cíle události funguje trasa událostí odesíláním dat událostí z Azure Digital Twins do vlastních definovaných koncových bodů ve vašich předplatných. 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, 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 zpět do služby Azure Digital Twins:
Pro výchozí přenos dat mimo Azure Digital Twins jsou typické podřízené cíle tras událostí Azure Maps, úložiště a analytická řešení. Azure Digital Twins implementuje aspoň jednou doručení dat generovaných do služeb výchozího přenosu dat.
Pokud chcete směrovat interní události digitálního dvojčete ve stejném ř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čete 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 k výpočetním prostředkům, jako je Azure Functions. Tyto funkce pak definují, jak by dvojčata měla přijímat události a reagovat na ně.
Pokud výpočetní prostředek chce upravit graf dvojčete na základě události, kterou přijala přes trasu událostí, je užitečné, aby věděl předem, které dvojče by se mělo upravit. Zpráva události obsahuje také ID zdrojového dvojčete, které zprávu odeslalo, takže výpočetní prostředek může použít dotazy nebo procházet relacemi k vyhledání cílového dvojčete pro požadovanou operaci.
Výpočetní prostředek musí také nezávisle na sobě navazovat oprávnění zabezpečení a přístupu.
Pokud chcete projít procesem nastavení funkce Azure pro zpracování událostí digitálního dvojčete, přečtěte si téma 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í ke směrování. Mezi podporované cíle patří:
- Vlastní témata event Gridu
- Centra událostí
- 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 založeným na identitě a použít koncový bod se systémem přiřazenou nebo spravovanou identitou přiřazenou uživatelem. Tato možnost je dostupná jenom pro koncové body služby Event Hubs a Service Bus (nepodporuje se pro Event Grid).
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álostí 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álosti v rámci klientské aplikace pomocí CreateOrReplaceEventRouteAsync
volání sady .NET (C#) SDK :
string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
DigitalTwinsEventRoute
Nejprve se vytvoří objekt a konstruktor převezme název koncového bodu. TotoendpointName
pole identifikuje koncový bod, jako je Event Hubs, Event Grid nebo Service Bus. Tyto koncové body se musí vytvořit ve vašem předplatném a připojit k Azure Digital Twins pomocí rozhraní API řídicí roviny před provedením tohoto registračního volání.Objekt trasy události má také pole Filtru , které lze použít k omezení typů událostí, které následují po této trase. Filtr umožňuje trasu bez dalšího
true
false
filtrování (filtr zakázání trasy).Tento objekt trasy události se pak předá
CreateOrReplaceEventRouteAsync
do objektu , spolu s názvem trasy.
Tip
Všechny funkce sady SDK jsou synchronní a asynchronní verze.
Podrobné pokyny k vytváření tras událostí najdete v tématu Vytváření tras a filtrů.
Události nedoručených dopisů
Pokud koncový bod nemůže událost doručit během určitého časového období nebo po několika pokusech o doručení události, může odeslat nedoručenou událost do účtu úložiště. Tento proces se označuje jako nedoručených dopisů. Azure Digital Twins při splnění jedné z následujících podmínek způsobí nedoručených informací událost:
- Událost není doručována během časového období
- Počet pokusů o doručení události překročil limit.
Pokud jsou splněny některé z podmínek, událost se zahodí nebo nedoručí. Ve výchozím nastavení se u každého koncového bodu nezapne dead-lettering. Pokud ho chcete povolit, musíte při vytváření koncového bodu zadat účet úložiště, ve kterém se budou uchovávat nedoručené události. Z tohoto účtu úložiště pak můžete načíst události a vyřešit tak dodávky.
Před nastavením umístění nedoručených dopisů musíte mít účet úložiště s kontejnerem. Při vytváření koncového bodu zadáte adresu URL pro tento kontejner. Nedoručované písmeno je k dispozici jako adresa URL kontejneru s tokenem SAS. Tento token potřebuje pouze write
oprávnění pro cílový kontejner v rámci účtu úložiště. Plně vytvořená 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 azure Storage pomocí sdílených přístupových podpisů (SAS)
Informace o nastavení koncového bodu s nedoručenými dopisy najdete v tématu Možnosti koncového bodu: Nedoručované dopisy.
Typy zpráv událostí
Různé typy událostí ve službě 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ího dvojčete |
Zprávy telemetrie digitálního dvojčete | Zprávy telemetrie | libovolná telemetrická zpráva |
Další kroky
Pokračujte podrobnými pokyny k nastavení koncových bodů a tras událostí:
Nebo podle tohoto návodu nastavte funkci Azure Functions pro zpracování událostí typu dvojčete-dvojčete v rámci služby Azure Digital Twins:
- Nastavte zpracování událostí typu twin-to-twin.