Dela via


Skapa händelserutter och filter i Azure Digital Twins

Den här artikeln guidar dig genom processen att skapa händelserutter med hjälp av Azure portal, Azure CLI az dt route-kommandon, Event Routes data plane API:er, och .NET (C#) SDK.

Routing händelseanmälningar från Azure Digital Twins till nedströms tjänster eller anslutna beräkningsresurser är en process i två steg: skapa slutpunkter, sedan skapa händelserutter för att skicka data till dessa slutpunkter. Den här artikeln täcker det andra steget, att skapa rutter för att kontrollera vilka händelser som levereras till vilka Azure Digital Twin slutpunkter. För att fortsätta med denna artikel bör du redan ha endpoints skapade.

Förutsättningar

  • Du behöver ett Azure-konto som kan konfigureras kostnadsfritt

  • Du behöver en Azure Digital Twins-instans i din Azure-prenumeration. Om du inte redan har en instans kan du skapa en med hjälp av stegen i Ställ in en instans och autentisering. Ha följande värden från installationen tillgängliga för att använda senare i denna artikel.

    • Instansnamn
    • Resursgrupp

    Du kan hitta dessa detaljer i Azure-portalen efter att du har konfigurerat din instans.

    Skärmdump av översiktssidan för en Azure Digital Twins-instans i Azure-portalen. Namnet och resursgruppen är markerade.

  • Skapa en slutpunkt genom att använda instruktionerna i Skapa slutpunkter. I den här artikeln skapar du en väg för att skicka data till slutpunkten.

Utför sedan följande instruktioner om du tänker använda Azure CLI när du följer den här guiden.

Förbered din miljö för Azure CLI

Skapa en eventrutt

Efter att ha skapat en slutpunkt måste du definiera en händelserutt för att faktiskt skicka data till slutpunkten. Dessa rutter låter utvecklare koppla ihop händelseflödet genom hela systemet och till underordnade tjänster. En enda rutt kan tillåta att flera notifieringar och händelsetyper väljs. Mer information om händelsevägar finns i Dirigera Azure Digital Twins-händelser.

Anmärkning

Se till att du har skapat minst en slutpunkt enligt beskrivningen i Förutsättningar innan du går vidare till att skapa en väg.

Om du nyligen har distribuerat dina slutpunkter, säkerställ att de är färdigdistribuerade innan du försöker använda dem för en ny väg för en händelse. Om ruttutplaceringen misslyckas eftersom ändpunkterna inte är redo, vänta några minuter och försök igen.

Om du skriptar det här flödet kanske du vill ta hänsyn till distributionen genom att skapa inom 2–3 minuters väntetid för att slutpunktstjänsten ska slutföra distributionen innan du går vidare till routningskonfigurationen.

En ruttdefinition kan innehålla dessa element:

  • Det rutt-namnet du vill använda
  • Namnet på den slutpunkt du vill använda
  • En filter som definierar vilka händelser som skickas till slutpunkten
    • För att inaktivera rutten så att inga händelser skickas, använd ett filtervärde av false
    • För att aktivera en rutt som inte har någon specifik filtrering, använd ett filtervärde av true
    • Mer information om andra typer av filter finns i avsnittet Filterhändelser

Om det inte finns något rutt namn, skickas inga meddelanden utanför Azure Digital Twins. Om det finns ett ruttnamn och filtret är true, routas alla meddelanden till slutpunkten. Om det finns ett vägnamn och ett annat filter läggs till filtreras meddelanden baserat på filtret.

Händelsevägar kan skapas med Azure-portalen, API:er för händelsevägar för dataplanet eller cli-kommandon för az dt route. Resten av denna sektion går igenom skapelseprocessen.

Om du vill skapa en händelseväg går du till informationssidan för din Azure Digital Twins-instans i Azure-portalen. Du hittar instansen genom att ange dess namn i portalens sökfält.

Från instansmenyn, välj händelserutter. Gå sedan från sidan Event routes som följer, och välj + Skapa en eventsruta.

På sidan Create an event route som öppnas, välj minst:

  • Ett namn för din rutt i fältet Namn
  • Den Endpoint du vill använda för att skapa rutten

För att rutten ska aktiveras måste du även lägga till ett händelseruttfilter på minst true. (Om du lämnar standardvärdet false för skapas vägen, men inga händelser skickas till den.) Det gör du genom att växla växeln för avancerad redigerare för att aktivera den och skriva true i rutan Filter .

Skärmdump av att skapa en händelserutt för din instans i Azure-portalen.

När du är klar, klicka på Spara-knappen för att skapa din händelserutt.

Filtrera händelser

Som tidigare beskrivits har vägar ett filterfält. Om filtervärdet på din väg är falseskickas inga händelser till slutpunkten.

När du har aktiverat ett minimalt filter för truefår slutpunkter olika typer av händelser från Azure Digital Twins:

  • Telemetri genererat av digitala tvillingar med hjälp av Azure Digital Twins tjänste-API
  • Meddelanden om ändring av tvillingegenskaper, som triggas vid ändringar av egenskaper för någon tvilling i Azure Digital Twins-instansen
  • Händelser i livscykeln, utlösta när tvillingar eller relationer skapas eller raderas

Du kan begränsa typen av händelser som skickas genom att definiera ett mer specifikt filter.

Anmärkning

Filter är skiftlägeskänsliga och måste matcha skiftläget i nyttolasten. För telemetrifilter måste höljet i filtret matcha höljet i telemetrin som skickas av enheten.

För att lägga till ett händelsefilter medan du skapar en händelseväg, använd avsnittet Lägg till ett händelsevägsfilter på sidan Skapa en händelseväg.

Du kan antingen välja bland några grundläggande vanliga filteralternativ eller använda de avancerade filteralternativen för att skapa dina egna anpassade filter.

Använd de grundläggande filtren

För att använda de grundläggande filtren, expandera alternativet Händelsetyper och markera kryssrutorna som motsvarar de händelser du vill skicka till din slutpunkt.

Skärmdump av att skapa en händelserutt med ett grundläggande filter i Azure-portalen, där avmarkningsrutorna för händelserna framhävs.

När du gör det fylls filtertextrutan automatiskt i med texten i det filter som du har valt:

Skärmdump av hur man skapar en eventrutt med ett enkelt filter i Azure-portalen, där den automatiskt ifyllda filtertexten betonas efter att händelserna har valts.

Använd de avancerade filtren

Du kan också använda det avancerade filteralternativet för att skriva dina egna anpassade filter.

För att skapa en händelserutt med avancerade filteralternativ, slå på Avancerad redigerare för att aktivera den. Sedan kan du skriva dina egna eventfilter i Filter-rutan:

Skärmbild av att skapa en händelserutt med ett avancerat filter i Azure-portalen.

Stödda ruttfilter

Här är de stödda rutfilter.

Filternamn Beskrivning Filter textschema Stödda värden
Sant / Falskt Tillåter att skapa en rutt utan filtrering, eller att inaktivera en rutt så att inga händelser skickas <true/false> true = rutten är aktiverad utan filtrering
false = rutten är inaktiverad
Typ Typen av händelse som flödar genom din digitala tvillinginstans type = '<event-type>' Här är de möjliga värdena för Händelsetypen:
Microsoft.DigitalTwins.Twin.Create
Microsoft.DigitalTwins.Twin.Delete
Microsoft.DigitalTwins.Twin.Update
Microsoft.DigitalTwins.Relationship.Create
Microsoft.DigitalTwins.Relationship.Update
Microsoft.DigitalTwins.Relationship.Delete
microsoft.iot.telemetry
Källa Namn på instans av Azure Digital Twins source = '<host-name>' Här är de möjliga värdena för värdnamn:

För aviseringar: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net

För telemetri: <your-Digital-Twins-instance>.api.<your-region>.digitaltwins.azure.net/<twin-ID>
Ämne En beskrivning av händelsen i händelsekällans kontext subject = '<subject>' Här är de möjliga ämnesvärdena:

För aviseringar: Ämnet är <twin-ID>
eller ett URI-format för ämnen, som unikt identifieras av flera delar eller ID:n:
<twin-ID>/relationships/<relationship-ID>

För telemetri: Subjektet är komponentens väg (om telemetrin sänds ut från en tvillingkomponent), såsom comp1.comp2. Om telemetrin inte avges från en komponent är dess ämnesfält tomt.
Datamodell DTDL-modell-ID dataschema = '<model-dtmi-ID>' För telemetri: Dataschemat är modell-ID:t hos tvillingen eller den komponent som skickar telemetri. Till exempel, dtmi:example:com:floor4;2

För aviseringar (skapa/radera): Dataschema kan nås i meddelandets text vid $body.$metadata.$model.

För meddelanden (uppdatering): Dataschema kan nås i meddelandekroppen på $body.modelId
Innehållstyp Innehållstyp för datavärde datacontenttype = '<content-type>' Innehållstypen är application/json
Specifikationsversion Den version av händelseschemat som du använder specversion = '<version>' Versionen måste vara 1.0. Detta värde indikerar CloudEvents schema version 1.0
Notifikationstext Referera till valfri egenskap i data-fältet i en avisering $body.<property> Se händelseaviseringar för exempel på aviseringar. Vilken egenskap som helst i data-fältet kan refereras med hjälp av $body

Anmärkning

Azure Digital Twins stöder för närvarande inte att filtrera händelser baserat på fält inom en matris. Den här begränsningen omfattar filtrering av egenskaper i ett patch avsnitt i ett meddelande om ändring av digital tvilling.

Följande datatyper stöds som värden som returneras av referenser till tidigare data:

Datatyp Exempel
Sträng STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor')
CONTAINS(subject, '<twin-ID>')
Heltal $body.errorCode > 200
dubbel $body.temperature <= 5.5
Bool $body.poweredOn = true
Noll $body.prop != null

Följande operatorer stöds när du definierar filter för rutter:

Familj Operatörer Exempel
Logiskt OCH, ELLER, ( ) (type != 'microsoft.iot.telemetry' OR datacontenttype = 'application/json') OR (specversion != '1.0')
Jämförelse <, <=, >, >=, =, != $body.temperature <= 5.5

Följande funktioner stöds när du definierar ruttfilter:

Funktion Beskrivning Exempel
STARTS_WITH(x,y) är en funktion som kontrollerar om x börjar med y. Returnerar sant om värdet x börjar med strängen y. STARTS_WITH($body.$metadata.$model, 'dtmi:example:com:floor')
SLUTAR_MED(x,y) Returnerar sant om värdet x slutar med strängen y. ENDS_WITH($body.$metadata.$model, 'floor;1')
INNEHÅLLER(x,y) Returnerar sant om värdet x innehåller strängen y. CONTAINS(subject, '<twin-ID>')

När du implementerar eller uppdaterar ett filter kan det ta några minuter innan ändringen återspeglas i datapipelinen.

Övervaka händelserutter

Rutteringsmetrik såsom antal, fördröjning och felprocent kan ses i Azure-portalen.

Information om hur du visar och hanterar mått med Azure Monitor finns i Analysera mått med Azure Monitor Metrics Explorer. En fullständig lista över routningsmått som är tillgängliga för Azure Digital Twins finns i Routningsmått.

Nästa steg

Läs om de olika typerna av händelsemeddelanden du kan ta emot.