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 går in mer detaljerat på vart och ett av dessa begrepp. Det förklarar också vad som händer när en slutpunkt misslyckas med att 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 ä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 slutdestinationer 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:
För utgående data utanför Azure Digital Twins är vanliga underordnade mål för händelsevägar Azure Maps, lagring och analyslösningar. Azure Digital Twins implementerar minst en gång leverans för data som skickas till utgående tjänster.
För routning av 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 för den 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 korsa relationer för att hitta en måltvilling för den önskade åtgärden.
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 hantering av tvilling-till-tvilling-händelser.
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 är:
- Anpassade ämnen för Event Grid
- -händelsehubbar
- Service Bus
Om du vill skapa en slutpunkt kan du använda AZURE Digital Twins REST-API:er, CLI-kommandon eller Azure-portalen.
När du definierar en slutpunkt måste du ange:
- Slutpunktens namn
- Slutpunktstypen (Event Grid, Event Hubs eller Service Bus)
- Den primära niska veze och den sekundära niska veze att autentisera
- Ä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 Slutpunkter av Event Hubs- och Service Bus-typ (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-portalen.
Här är ett exempel på hur du skapar en händelseväg i ett klientprogram med SDK-anropet CreateOrReplaceEventRouteAsync
.NET (C#):
string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
Först skapas ett
DigitalTwinsEventRoute
objekt och konstruktorn tar namnet på en slutpunkt. Det härendpointName
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 kontrollplan innan du gör det här registreringsanropet.Händelsevägsobjektet har också ett filterfält som kan användas för att begränsa de typer av händelser som följer den här vägen. Ett filter av
true
aktiverar vägen utan extra filtrering (ett filter avfalse
inaktiverar vägen).Det här händelsevägsobjektet skickas sedan till
CreateOrReplaceEventRouteAsync
, tillsammans med ett namn på vägen.
Dricks
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 "dead-lettering". Azure Digital Twins kommer att skriva en händelse utan bokstav när något av följande villkor uppfylls:
- Händelsen levereras inte inom tidsperioden
- 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 aktiveras inte obeställbara bokstäver för varje slutpunkt. 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 bokstäver måste du ha ett lagringskonto med en container. Du anger URL:en för den här containern när du skapar slutpunkten. Obeställbara bokstäver tillhandahålls 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 formade 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 ä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:
Du kan också följa den här genomgången för att konfigurera en Azure-funktion för händelsehantering mellan två och två i Azure Digital Twins: