Dirigera Azure Digital Twins-händelser

Den här artikeln beskriver den process som Azure Digital Twins använder för att skicka händelsedata, både för routning av händelser internt i Azure Digital Twins och för att skicka händelsedata externt till underordnade tjänster eller anslutna beräkningsresurser utanför tjänsten.

Routning av händelsemeddelanden från Azure Digital Twins är en tvåstegsprocess: skapa slutpunkter och skapa sedan händelsevägar för att skicka data till dessa slutpunkter. Den här artikeln innehåller mer information om vart och ett av dessa begrepp. Det förklarar också vad som händer när en slutpunkt inte kan leverera en händelse i tid (en process som kallas obeställbara bokstäver).

Översikt över händelseroutning

Det finns två huvudsakliga scenarier för att skicka Azure Digital Twins-data, och händelsevägar används för att åstadkomma båda:

  • Skicka händelsedata från en tvilling i Azure Digital Twins-grafen till en annan. När en egenskap på en digital tvilling till exempel ändras kanske du vill meddela och uppdatera en annan digital tvilling baserat på uppdaterade data.
  • Skicka data utanför Azure Digital Twins till underordnade datatjänster för mer lagring eller bearbetning. Om du till exempel redan använder Azure Maps kanske du vill bidra med Azure Digital Twins-data för att förbättra din lösning med integrerad modellering eller frågor.

För alla händelsemål fungerar en händelseväg genom att skicka händelsedata från Azure Digital Twins till anpassade slutpunkter i dina prenumerationer. Tre Azure-tjänster stöds för närvarande för slutpunkter: Event Hubs, Event Grid och Service Bus. Var och en av dessa Azure-tjänster kan anslutas till andra tjänster och fungerar som mellanhand och skickar data till slutmål som Azure Maps eller tillbaka till Azure Digital Twins för beroende grafuppdateringar.

Följande diagram illustrerar flödet av händelsedata via en större IoT-lösning, som omfattar att skicka Azure Digital Twins-data via slutpunkter till andra Azure-tjänster samt tillbaka till Azure Digital Twins:

Diagram över Azure Digital Twins-routningsdata via slutpunkter till flera underordnade tjänster.

För utgående data utanför Azure Digital Twins är typiska underordnade mål för händelsevägar Time Series Insights, Azure Maps, lagring och analyslösningar. Azure Digital Twins implementerar minst en leverans en gång för data som skickas till utgående tjänster.

Om du vill dirigera interna digitala tvillinghändelser i samma Azure Digital Twins-lösning fortsätter du till nästa avsnitt.

Dirigera interna digitala tvillinghändelser

Händelsevägar är den mekanism som används för att hantera händelser i tvillingdiagrammet och skicka data från digital tvilling till digital tvilling. Den här typen av händelsehantering utförs genom att ansluta händelsevägar via Event Grid till beräkningsresurser, till exempel Azure Functions. Dessa funktioner definierar sedan hur tvillingar ska ta emot och svara på händelser.

När en beräkningsresurs vill ändra tvillingdiagrammet baserat på en händelse som den tog emot via händelsevägen är det bra att veta i förväg vilken tvilling den ska ändra. Händelsemeddelandet innehåller också ID:t för källtvillingen som skickade meddelandet, så beräkningsresursen kan använda frågor eller bläddra relationer för att hitta en måltvilling för önskad åtgärd.

Beräkningsresursen måste också upprätta säkerhets- och åtkomstbehörigheter oberoende av varandra.

Information om hur du konfigurerar en Azure-funktion för att bearbeta händelser med digitala tvillingar finns i Konfigurera händelsehantering från tvilling till tvilling.

Skapa slutpunkter

För att kunna definiera en händelseväg måste utvecklarna först definiera slutpunkter. En slutpunkt är ett mål utanför Azure Digital Twins som stöder en routningsanslutning. Exempel på mål som stöds:

  • Anpassade ämnen för Event Grid
  • Event Hubs
  • Service Bus

Om du vill skapa en slutpunkt kan du använda AZURE Digital Twins REST-API:er, CLI-kommandon eller Azure Portal.

När du definierar en slutpunkt måste du ange:

  • Slutpunktens namn
  • Slutpunktstypen (Event Grid, Event Hubs eller Service Bus)
  • Den primära anslutningssträngen och den sekundära anslutningssträngen som ska autentiseras
  • Ämnessökvägen för slutpunkten, till exempel your-topic.westus2.eventgrid.azure.net

Du kan också välja att skapa slutpunkten med identitetsbaserad autentisering för att använda slutpunkten med en systemtilldelad eller användartilldelad hanterad identitet. Det här alternativet är endast tillgängligt för Event Hubs- och Service Bus-slutpunkter (det stöds inte för Event Grid).

De slutpunkts-API:er som är tillgängliga i kontrollplanet är:

  • Skapa slutpunkt
  • Hämta lista över slutpunkter
  • Hämta slutpunkt efter namn
  • Ta bort slutpunkt efter namn

Detaljerade anvisningar om hur du skapar en slutpunkt finns i Skapa slutpunkter.

Skapa händelsevägar

Om du vill skapa en händelseväg kan du använda REST-API:er för Azure Digital Twins, CLI-kommandon eller Azure Portal.

Här är ett exempel på hur du skapar en händelseväg i ett klientprogram med hjälp av SDK-anropet CreateOrReplaceEventRouteAsync.NET (C# ):

string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
  1. Först skapas ett DigitalTwinsEventRoute objekt och konstruktorn tar namnet på en slutpunkt. Det här endpointName fältet identifierar en slutpunkt, till exempel en Händelsehubb, Event Grid eller Service Bus. Dessa slutpunkter måste skapas i din prenumeration och kopplas till Azure Digital Twins med hjälp av API:er för kontrollplanet innan du gör det här registreringsanropet.

  2. Händelsevägsobjektet har också ett filterfält som kan användas för att begränsa vilka typer av händelser som följer den här vägen. Ett filter av true aktiverar vägen utan extra filtrering (ett filter av false inaktiverar vägen).

  3. Det här händelsevägsobjektet skickas sedan till CreateOrReplaceEventRouteAsync, tillsammans med ett namn på vägen.

Tips

Alla SDK-funktioner finns i synkrona och asynkrona versioner.

Detaljerade anvisningar om hur du skapar händelsevägar finns i Skapa vägar och filter.

Händelser med obeställbara bokstäver

När en slutpunkt inte kan leverera en händelse inom en viss tidsperiod eller efter att ha försökt leverera händelsen flera gånger, kan den skicka händelsen som inte har levererats till ett lagringskonto. Den här processen kallas för obeställbara bokstäver. Azure Digital Twins kommer att skicka en händelse utan fel när något av följande villkor uppfylls:

  • Händelsen levereras inte inom den aktuella perioden
  • Antalet försök att leverera händelsen har överskridit gränsen

Om något av villkoren uppfylls tas händelsen bort eller skrivs med obeställbara bokstäver. Som standard aktiverar inte varje slutpunkt obeställbara bokstäver. Om du vill aktivera det måste du ange ett lagringskonto som ska innehålla händelser som inte har levererats när slutpunkten skapas. Du kan sedan hämta händelser från det här lagringskontot för att lösa leveranser.

Innan du anger platsen för obeställbara meddelanden måste du ha ett lagringskonto med en container. Du anger URL:en för den här containern när du skapar slutpunkten. Den obeställbara bokstaven anges som en container-URL med en SAS-token. Den token behöver bara write behörighet för målcontainern i lagringskontot. Den fullständigt utformade URL:en kommer att ha följande format: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>

Mer information om SAS-token finns i: Bevilja begränsad åtkomst till Azure Storage-resurser med hjälp av signaturer för delad åtkomst (SAS)

Information om hur du konfigurerar en slutpunkt med obeställbara bokstäver finns i Slutpunktsalternativ: Obeställbara bokstäver.

Typer av händelsemeddelanden

Olika typer av händelser i IoT Hub och Azure Digital Twins skapar olika typer av meddelanden enligt beskrivningen nedan.

Meddelandetyp Namn på routningskälla Genererad från...
Ändringsmeddelande för digital tvilling Ändringsmeddelande för digital tvilling alla ändringar av digital tvillingegenskap
Livscykelmeddelande för digital tvilling Livscykelmeddelande för digital tvilling alla åtgärder för att skapa eller ta bort digitala tvillingar
Ändringsmeddelande för digital tvilling-relation Ändringsmeddelande för digital tvilling-relation alla förändringar i relationen mellan digitala tvillingar
Telemetrimeddelanden för digital tvilling Telemetrimeddelanden telemetrimeddelande

Nästa steg

Fortsätt till de stegvisa anvisningarna för att konfigurera slutpunkter och händelsevägar:

Eller följ den här genomgången för att konfigurera en Azure-funktion för händelsehantering mellan två och två i Azure Digital Twins: