Freigeben über


Weiterleiten von Azure Digital Twins-Ereignissen

In diesem Artikel wird der Prozess beschrieben, mit dem Azure Digital Twins Ereignisdaten sendet – sowohl zum internen Routing von Ereignissen innerhalb von Azure Digital Twins als auch zum Senden von Ereignisdaten außerhalb des Diensts an nachgelagerte Dienste oder verbundene Computeressourcen außerhalb des Diensts.

Das Routing von Ereignisbenachrichtigungen von Azure Digital Twins ist ein zweistufiger Prozess: Zuerst müssen Endpunkte erstellt werden und danach Ereignisrouten, um Daten an diese Endpunkte zu senden. In diesem Artikel finden Sie ausführlichere Informationen zu den einzelnen Konzepten. Außerdem wird erläutert, was geschieht, wenn ein Endpunkt ein Ereignis nicht rechtzeitig zustellt (als Unzustellbare Nachricht bezeichnet).

Übersicht über das Ereignisrouting

Es gibt zwei Hauptszenarien zum Senden von Azure Digital Twins-Daten. Für beide werden Ereignisrouten verwendet:

  • Der erste Fall ist das Senden von Ereignisdaten von einem Zwilling im Azure Digital Twins-Graph an einen anderen. Wenn sich beispielsweise eine Eigenschaft in einem digitalen Zwilling ändert, sollten Sie einen anderen digitalen Zwilling im Hinblick auf die aktualisierten Daten benachrichtigen und aktualisieren.
  • Der zweite Fall ist das Senden von Daten außerhalb von Azure Digital Twins an Downstreamdatendienste zur weiteren Speicherung oder Verarbeitung. Wenn Sie beispielsweise bereits Azure Maps verwenden, möchten Sie möglicherweise Azure Digital Twins-Daten beitragen, um Ihre Lösung mit integrierten Modellierungen oder Abfragen zu verbessern.

Für jedes Ereignisziel funktioniert eine Ereignisroute durch Senden von Ereignisdaten von Azure Digital Twins an benutzerdefinierte Endpunkte in Ihren Abonnements. Derzeit werden drei Azure-Dienste für Endpunkte unterstützt: Event Hubs, Event Grid und Service Bus. Jeder dieser Azure-Dienste kann mit anderen Diensten verbunden werden und fungiert als Mittelsmann, der Daten an endgültige Ziele wie Azure Maps oder bei abhängigen Graphaktualisierungen zurück an Azure Digital Twins sendet.

Das folgende Diagramm veranschaulicht den Flow von Ereignisdaten durch eine größere IoT-Lösung, der das Senden von Azure Digital Twins-Daten über Endpunkte an andere Azure Services sowie zurück an Azure Digital Twins umfasst:

Diagramm der Weiterleitung von Daten aus Azure Digital Twins über Endpunkte an mehrere Downstreamdienste.

Für ausgehende Daten außerhalb von Azure Digital Twins sind typische Downstreamziele für Ereignisrouten: Azure Maps sowie Speicher- und Analyselösungen. Azure Digital Twins implementiert die mindestens einmalige Zustellung für Daten, die an ausgehende Dienste ausgegeben werden.

Um interne Ereignisse digitaler Zwillinge innerhalb derselben Azure Digital Twins-Lösung weiterzuleiten, fahren Sie mit dem nächsten Abschnitt fort.

Weiterleiten interner Ereignisse digitaler Zwillinge

Ereignisrouten werden als Mechanismus für die Behandlung von Ereignissen innerhalb des Zwillingsgraphen verwendet. Dabei werden Daten zwischen digitalen Zwillingen gesendet. Diese Art der Ereignisverarbeitung erfolgt durch Herstellen einer Verbindung zwischen Ereignisrouten und Computeressourcen wie Azure Functions über Event Grid. Diese Funktionen definieren dann, wie Zwillinge Ereignisse empfangen und auf diese reagieren sollen.

Wenn eine Computeressource den Zwillingsgraphen auf Grundlage eines über die Ereignisroute empfangenen Ereignisses ändern möchte, ist es hilfreich, wenn sie im Voraus weiß, welcher Zwilling geändert werden soll. Die Ereignisnachricht enthält auch die ID des Quellzwillings, der sie gesendet hat, sodass die Computeressource Abfragen verwenden oder Beziehungen durchlaufen kann, um einen Zielzwilling für den gewünschten Vorgang zu finden.

Darüber hinaus muss die Computeressource Sicherheits -und Zugriffsberechtigungen unabhängig einrichten.

Eine Anleitung für das Einrichten einer Azure-Funktion zum Verarbeiten von Ereignissen für digitale Zwillinge finden Sie unter Einrichten der Verarbeitung von Ereignissen zwischen Zwillingen.

Erstellen von Endpunkten

Zum Definieren einer Ereignisroute müssen Entwickler zunächst Endpunkte definieren. Ein Endpunkt ist ein Ziel außerhalb von Azure Digital Twins, das eine Routenverbindung unterstützt. Unterstützte Ziele sind beispielsweise:

  • Benutzerdefinierte Event Grid-Themen
  • Event Hubs
  • Service Bus

Sie können die REST-APIs von Azure Digital Twins, CLI-Befehle oder das Azure-Portal verwenden, um einen Endpunkt zu erstellen.

Beim Definieren eines Endpunkts müssen Sie Folgendes angeben:

  • Name des Endpunkts
  • Endpunkttyp (Event Grid, Event Hubs oder Service Bus)
  • Primäre und sekundäre Verbindungszeichenfolge für die Authentifizierung
  • Der Themenpfad des Endpunkts, z. B. your-topic.westus2.eventgrid.azure.net

Optional können Sie Ihren Endpunkt mit identitätsbasierter Authentifizierung erstellen, um den Endpunkt mit einer systemseitig oder benutzerseitig zugewiesenen verwalteten Identität zu verwenden. Diese Option ist nur für Event Hubs- und Service Bus-Endpunkte verfügbar. (Für Event Grid wird sie nicht unterstützt.)

In der Steuerungsebene sind Endpunkt-APIs für Folgendes verfügbar:

  • Endpunkt erstellen
  • Abrufen einer Liste mit Endpunkten
  • Abrufen von Endpunkten nach Name
  • Löschen von Endpunkten nach Name

Ausführliche Anweisungen zum Erstellen eines Endpunkts finden Sie unter Erstellen von Endpunkten.

Erstellen von Ereignisrouten

Sie können zum Erstellen einer Ereignisroute die REST-APIs von Azure Digital Twins, CLI-Befehle oder das Azure-Portal verwenden.

Im Folgenden finden Sie ein Beispiel für das Erstellen einer Ereignisroute in einer Clientanwendung mithilfe des .NET (C#) SDK-Aufrufs CreateOrReplaceEventRouteAsync:

string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
  1. Zunächst wird ein DigitalTwinsEventRoute-Objekt erstellt, und der-Konstruktor nimmt den Namen eines Endpunkts an. Dieses endpointName-Feld identifiziert einen Endpunkt, z. B. einen Event Hub, ein Event Grid oder einen Service Bus. Diese Endpunkte müssen vor diesem Registrierungsaufruf in Ihrem Abonnement erstellt und mithilfe von Steuerungsebenen-APIs an Azure Digital Twins angehängt werden.

  2. Das Ereignisroutenobjekt verwendet auch ein Feld Filter, das zum Einschränken der Arten von Ereignissen für diese Route verwendet werden kann. Ein Filter true aktiviert die Route ohne zusätzliche Filterung (ein Filter mit dem Wert false deaktiviert die Route).

  3. Dieses Ereignisroutenobjekt wird dann zusammen mit einem Namen für die Route an CreateOrReplaceEventRouteAsync übergeben.

Tipp

Alle SDK-Funktionen sind in synchronen und asynchronen Versionen enthalten.

Ausführliche Anweisungen zum Erstellen von Ereignisrouten finden Sie unter Erstellen von Routen und Filtern.

„Unzustellbare Nachrichten“-Ereignisse

Wenn ein Endpunkt ein Ereignis innerhalb eines bestimmten Zeitraums oder nach mehreren Übermittlungsversuchen nicht übermitteln kann, kann er das nicht übermittelte Ereignis an ein Speicherkonto senden. Dieser Prozess wird als Speicherung unzustellbarer Nachrichten bezeichnet. Von Azure Digital Twins wird ein Ereignis als unzustellbar betrachtet, wenn eine der folgenden Bedingungen erfüllt ist:

  • Das Ereignis wird nicht innerhalb der Gültigkeitsdauer übermittelt.
  • Die Anzahl der Übermittlungsversuche hat den Grenzwert überschritten.

Wenn eine der Bedingungen erfüllt ist, wird das Ereignis gelöscht oder als unzustellbare Nachricht gespeichert. Endpunkte aktivieren unzustellbare Nachrichten standardmäßig nicht. Wenn Sie das Feature aktivieren möchten, müssen Sie bei der Erstellung des Endpunkts ein Speicherkonto zum Speichern nicht übermittelter Ereignisse angeben. Ereignisse werden dann aus diesem Speicherkonto gepullt, um Übermittlungsprobleme zu beheben.

Wenn Sie den Speicherort für unzustellbare Nachrichten festlegen möchten, benötigen Sie ein Speicherkonto mit einem Container. Sie geben die URL für diesen Container an, wenn Sie den Endpunkt erstellen. Die unzustellbaren Nachrichten werden als Container-URL mit einem SAS-Token bereitgestellt. Dieses Token benötigt nur die write-Berechtigung für den Zielcontainer innerhalb des Speicherkontos. Die vollständig formatierte URL weist das folgende Format auf: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>

Weitere Informationen zu SAS-Token finden Sie unter Gewähren von eingeschränktem Zugriff auf Azure Storage-Ressourcen mithilfe von SAS (Shared Access Signature).

Weitere Informationen zum Einrichten eines Endpunkts mit unzustellbaren Nachrichten finden Sie unter Endpunktoptionen: Unzustellbare Nachrichten.

Arten von Ereignisnachrichten

Verschiedene Arten von Ereignissen in IoT Hub und Azure Digital Twins führen zu verschiedenen Arten von Benachrichtigungsmeldungen, wie unten beschrieben.

Benachrichtigungstyp Name der Routingquelle Generiert von...
Änderungsbenachrichtigung bei digitalen Zwillingen Änderungsbenachrichtigung bei digitalen Zwillingen beliebige Eigenschaftenänderung bei digitalen Zwillingen
Lebenszyklusbenachrichtigung bei digitalen Zwillingen Lebenszyklusbenachrichtigung bei digitalen Zwillingen jeder Vorgang zum Erstellen oder Löschen von digitalen Zwillingen
Benachrichtigung zur Beziehungsänderung bei digitalen Zwillingen Benachrichtigung zur Beziehungsänderung bei digitalen Zwillingen beliebige Änderung der Beziehung digitaler Zwillinge
Telemetrienachrichten für digitale Zwillinge Telemetrienachrichten beliebige Telemetrienachricht

Nächste Schritte

Fahren Sie mit den Schrittanleitungen zum Einrichten von Endpunkten und Ereignisrouten fort:

Oder folgen Sie dieser exemplarischen Vorgehensweise, um eine Azure-Funktion für die Verarbeitung von Ereignissen zwischen Zwillingen in Azure Digital Twins einzurichten: