Azure Digital Twins-gebeurtenissen routeren
In dit artikel wordt het proces beschreven dat Azure Digital Twins gebruikt om gebeurtenisgegevens te verzenden, zowel voor het intern routeren van gebeurtenissen binnen Azure Digital Twins als voor het extern verzenden van gebeurtenisgegevens naar downstreamservices of verbonden rekenresources buiten de service.
Het routeren van gebeurtenismeldingen van Azure Digital Twins bestaat uit twee stappen: eindpunten maken en vervolgens gebeurtenisroutes maken om gegevens naar deze eindpunten te verzenden. In dit artikel wordt nader ingegaan op elk van deze concepten. Er wordt ook uitgelegd wat er gebeurt wanneer een eindpunt een gebeurtenis niet tijdig kan leveren (een proces dat wordt aangeduid als 'dead lettering').
Overzicht van gebeurtenisroutering
Er zijn twee hoofdscenario's voor het verzenden van Azure Digital Twins-gegevens en gebeurtenisroutes worden gebruikt om beide te bereiken:
- Gebeurtenisgegevens verzenden van één dubbel in de Azure Digital Twins-grafiek naar een andere. Wanneer bijvoorbeeld een eigenschap op één digitale dubbel verandert, kunt u een andere digitale dubbel op de hoogte stellen en bijwerken op basis van de bijgewerkte gegevens.
- Gegevens buiten Azure Digital Twins verzenden naar downstreamgegevensservices voor meer opslag of verwerking. Als u bijvoorbeeld al Gebruikmaakt van Azure Maps, kunt u Azure Digital Twins-gegevens bijdragen om uw oplossing te verbeteren met geïntegreerde modellering of query's.
Voor elke gebeurtenisbestemming werkt een gebeurtenisroute door gebeurtenisgegevens van Azure Digital Twins te verzenden naar aangepaste eindpunten in uw abonnementen. Er worden momenteel drie Azure-services ondersteund voor eindpunten: Event Hubs, Event Grid en Service Bus. Elk van deze Azure-services kan worden verbonden met andere services en fungeert als de middleman, het verzenden van gegevens naar eindbestemmingen zoals Azure Maps of terug naar Azure Digital Twins voor afhankelijke grafiekupdates.
Het volgende diagram illustreert de stroom van gebeurtenisgegevens via een grotere IoT-oplossing, waaronder het verzenden van Azure Digital Twins-gegevens via eindpunten naar andere Azure-services, en terug naar Azure Digital Twins:
Voor uitgaand verkeer van gegevens buiten Azure Digital Twins zijn typische downstreamdoelen voor gebeurtenisroutes Azure Maps, opslag en analyseoplossingen. Azure Digital Twins implementeert ten minste eenmaal levering voor gegevens die worden verzonden naar uitgaande services.
Voor het routeren van interne digitale dubbel-gebeurtenissen binnen dezelfde Azure Digital Twins-oplossing gaat u verder met de volgende sectie.
Interne digitale dubbel-gebeurtenissen routeren
Gebeurtenisroutes zijn het mechanisme dat wordt gebruikt voor het verwerken van gebeurtenissen in de tweelinggrafiek, waarbij gegevens van digitale dubbel naar digitale dubbel worden verzonden. Dit soort gebeurtenisafhandeling wordt uitgevoerd door gebeurtenisroutes via Event Grid te verbinden met rekenresources, zoals Azure Functions. Met deze functies definieert u vervolgens hoe tweelingen gebeurtenissen moeten ontvangen en erop moeten reageren.
Wanneer een rekenresource de dubbelgrafiek wil wijzigen op basis van een gebeurtenis die deze heeft ontvangen via gebeurtenisroute, is het handig om te weten welke tweeling deze moet wijzigen. Het gebeurtenisbericht bevat ook de id van de brondubbel die het bericht heeft verzonden, zodat de rekenresource query's kan gebruiken of relaties kan doorlopen om een doeldubbel te vinden voor de gewenste bewerking.
De rekenresource moet ook onafhankelijk van elkaar beveiligings- en toegangsmachtigingen tot stand brengen.
Als u het proces van het instellen van een Azure-functie voor het verwerken van digitale dubbelgebeurtenissen wilt doorlopen, raadpleegt u De verwerking van gebeurtenissen met twee-naar-dubbels instellen.
Eindpunten maken
Ontwikkelaars moeten eerst eindpunten definiëren om een gebeurtenisroute te definiëren. Een eindpunt is een bestemming buiten Azure Digital Twins die ondersteuning biedt voor een routeverbinding. Ondersteunde bestemmingen zijn onder andere:
- Aangepaste Onderwerpen van Event Grid
- Event Hubs
- Service Bus
Als u een eindpunt wilt maken, kunt u de Azure Digital Twins REST API's, CLI-opdrachten of Azure Portal gebruiken.
Wanneer u een eindpunt definieert, moet u het volgende opgeven:
- De naam van het eindpunt
- Het eindpunttype (Event Grid, Event Hubs of Service Bus)
- De primaire verbindingsreeks en secundaire verbindingsreeks voor verificatie
- Het onderwerppad van het eindpunt, zoals
your-topic.westus2.eventgrid.azure.net
U kunt eventueel uw eindpunt maken met verificatie op basis van identiteit, om het eindpunt te gebruiken met een door het systeem toegewezen of door de gebruiker toegewezen beheerde identiteit. Deze optie is alleen beschikbaar voor Event Hubs- en Service Bus-eindpunten (dit wordt niet ondersteund voor Event Grid).
De eindpunt-API's die beschikbaar zijn in het besturingsvlak zijn:
- Eindpunt maken
- Lijst met eindpunten ophalen
- Eindpunt ophalen op naam
- Eindpunt verwijderen op naam
Zie Eindpunten maken voor gedetailleerde instructies voor het maken van een eindpunt.
Gebeurtenisroutes maken
Als u een gebeurtenisroute wilt maken, kunt u de Azure Digital Twins REST API's, CLI-opdrachten of Azure Portal gebruiken.
Hier volgt een voorbeeld van het maken van een gebeurtenisroute in een clienttoepassing met behulp van de CreateOrReplaceEventRouteAsync
SDK-aanroep van .NET (C#):
string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
Eerst wordt een
DigitalTwinsEventRoute
object gemaakt en de constructor krijgt de naam van een eindpunt. DitendpointName
veld identificeert een eindpunt, zoals een Event Hubs, Event Grid of Service Bus. Deze eindpunten moeten worden gemaakt in uw abonnement en zijn gekoppeld aan Azure Digital Twins met behulp van besturingsvlak-API's voordat u deze registratie-aanroep doet.Het gebeurtenisrouteobject heeft ook een filterveld , dat kan worden gebruikt om de typen gebeurtenissen te beperken die volgen op deze route. Met een filter kan
true
de route zonder extra filters worden ingeschakeld (een filter waarmeefalse
de route wordt uitgeschakeld).Dit gebeurtenisrouteobject wordt vervolgens doorgegeven aan
CreateOrReplaceEventRouteAsync
, samen met een naam voor de route.
Tip
Alle SDK-functies worden geleverd in synchrone en asynchrone versies.
Zie Routes en filters maken voor gedetailleerde instructies voor het maken van gebeurtenisroutes.
Gebeurtenissen met dode letters
Wanneer een eindpunt een gebeurtenis niet binnen een bepaalde periode kan leveren of nadat de gebeurtenis meerdere keren is uitgevoerd, kan de niet-bezorgde gebeurtenis naar een opslagaccount worden verzonden. Dit proces staat bekend als dead-lettering. Azure Digital Twins ontvangt een gebeurtenis als aan een van de volgende voorwaarden wordt voldaan:
- Gebeurtenis wordt niet geleverd binnen de time-to-live-periode
- Het aantal pogingen om de gebeurtenis te leveren heeft de limiet overschreden
Als aan een van de voorwaarden wordt voldaan, wordt de gebeurtenis verwijderd of niet-geschreven. Standaard wordt voor elk eindpunt geen dode lettering ingeschakeld. Als u dit wilt inschakelen, moet u een opslagaccount opgeven voor het opslaan van niet-bezorgde gebeurtenissen bij het maken van het eindpunt. Vervolgens kunt u gebeurtenissen ophalen uit dit opslagaccount om leveringen op te lossen.
Voordat u de locatie voor dode letters instelt, moet u een opslagaccount met een container hebben. U geeft de URL voor deze container op bij het maken van het eindpunt. De dode letter wordt geleverd als een container-URL met een SAS-token. Dit token heeft alleen write
machtigingen nodig voor de doelcontainer binnen het opslagaccount. De volledig gevormde URL heeft de volgende indeling: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>
Zie voor meer informatie over SAS-tokens: Beperkte toegang verlenen tot Azure Storage-resources met behulp van sas-handtekeningen (Shared Access Signatures)
Typen gebeurtenisberichten
Verschillende typen gebeurtenissen in IoT Hub en Azure Digital Twins produceren verschillende typen meldingsberichten, zoals hieronder wordt beschreven.
Meldingstype | Naam routeringsbron | Gegenereerd uit... |
---|---|---|
Wijzigingsmelding van digitale dubbels | Wijzigingsmelding van digitale dubbels | elke wijziging van digitale dubbel-eigenschap |
Levenscyclusmelding van digitale dubbels | Levenscyclusmelding van digitale dubbels | elke bewerking voor het maken of verwijderen van digitale dubbels |
Melding met betrekking tot relatiewijzigingen van digitale dubbels | Melding met betrekking tot relatiewijzigingen van digitale dubbels | elke digitale dubbelrelatie wijzigen |
Telemetrieberichten van digitale dubbels | Telemetrieberichten | elk telemetriebericht |
Volgende stappen
Ga door naar de stapsgewijze instructies voor het instellen van eindpunten en gebeurtenisroutes:
- Eindpunten maken en routes en filters maken
U kunt ook deze procedure volgen om een Azure-functie in te stellen voor het verwerken van dubbel-naar-dubbelgebeurtenissen in Azure Digital Twins: