Kierowanie zdarzeń usługi Azure Digital Twins

W tym artykule opisano proces używany przez usługę Azure Digital Twins do wysyłania danych zdarzeń, zarówno na potrzeby routingu zdarzeń wewnętrznie w usłudze Azure Digital Twins, jak i wysyłania danych zdarzeń zewnętrznie do usług podrzędnych lub połączonych zasobów obliczeniowych poza usługą.

Wysyłanie powiadomień o zdarzeniach z usługi Azure Digital Twins to proces dwuetapowy: tworzenie punktów końcowych, a następnie tworzenie tras zdarzeń w celu wysyłania danych do tych punktów końcowych. Ten artykuł zawiera bardziej szczegółowe informacje na temat każdego z tych pojęć. Wyjaśniono również, co się stanie, gdy punkt końcowy nie dostarczy zdarzenia w czasie (proces znany jako utracony zapis).

Omówienie routingu zdarzeń

Istnieją dwa główne scenariusze wysyłania danych usługi Azure Digital Twins, a trasy zdarzeń służą do realizacji obu tych scenariuszy:

  • Wysyłanie danych zdarzeń z jednej reprezentacji bliźniaczej na grafie usługi Azure Digital Twins do innej. Na przykład gdy właściwość jednej cyfrowej reprezentacji bliźniaczej ulegnie zmianie, możesz powiadomić i zaktualizować inną cyfrową reprezentację bliźniaczą na podstawie zaktualizowanych danych.
  • Wysyłanie danych spoza usługi Azure Digital Twins do usług danych podrzędnych w celu uzyskania większej ilości miejsca do magazynowania lub przetwarzania. Jeśli na przykład używasz już Azure Maps, warto współtworzyć dane usługi Azure Digital Twins, aby ulepszyć rozwiązanie za pomocą zintegrowanego modelowania lub zapytań.

W przypadku dowolnego miejsca docelowego zdarzenia trasa zdarzeń działa, wysyłając dane zdarzeń z usługi Azure Digital Twins do punktów końcowych zdefiniowanych przez użytkownika w subskrypcjach. Trzy usługi platformy Azure są obecnie obsługiwane w przypadku punktów końcowych: Event Hubs, Event Grid i Service Bus. Każda z tych usług platformy Azure może być połączona z innymi usługami i pełni rolę pośrednika, wysyłając dane do końcowych miejsc docelowych, takich jak Azure Maps, lub z powrotem do usługi Azure Digital Twins w celu uzyskania zależnych aktualizacji grafu.

Na poniższym diagramie przedstawiono przepływ danych zdarzeń za pośrednictwem większego rozwiązania IoT, które obejmuje wysyłanie danych usługi Azure Digital Twins za pośrednictwem punktów końcowych do innych usług platformy Azure, a także z powrotem do usługi Azure Digital Twins:

Diagram przedstawiający routing danych usługi Azure Digital Twins za pośrednictwem punktów końcowych do kilku usług podrzędnych.

W przypadku danych wychodzących poza usługę Azure Digital Twins typowe cele podrzędne dla tras zdarzeń to usługa Time Series Insights, Azure Maps, magazyn i rozwiązania analityczne. Usługa Azure Digital Twins implementuje co najmniej jednokrotne dostarczanie danych emitowanych do usług ruchu wychodzącego.

Aby rozsyłać wewnętrzne zdarzenia cyfrowej reprezentacji bliźniaczej w ramach tego samego rozwiązania usługi Azure Digital Twins, przejdź do następnej sekcji.

Kierowanie wewnętrznych zdarzeń cyfrowej reprezentacji bliźniaczej

Trasy zdarzeń to mechanizm używany do obsługi zdarzeń na grafie reprezentacji bliźniaczej, który wysyła dane z cyfrowej reprezentacji bliźniaczej do cyfrowej reprezentacji bliźniaczej. Tego rodzaju obsługa zdarzeń odbywa się przez połączenie tras zdarzeń za pośrednictwem usługi Event Grid z zasobami obliczeniowymi, takimi jak Azure Functions. Te funkcje definiują następnie sposób odbierania i reagowania na zdarzenia bliźniaczych reprezentacji bliźniaczych.

Gdy zasób obliczeniowy chce zmodyfikować graf bliźniaczej reprezentacji na podstawie zdarzenia otrzymanego za pośrednictwem trasy zdarzeń, warto znać wcześniej, którą reprezentację bliźniaczą powinien zmodyfikować. Komunikat zdarzenia zawiera również identyfikator źródłowej reprezentacji bliźniaczej, która wysłała komunikat, więc zasób obliczeniowy może używać zapytań lub przechodzić relacje w celu znalezienia docelowej reprezentacji bliźniaczej dla żądanej operacji.

Zasób obliczeniowy musi również niezależnie ustanowić uprawnienia zabezpieczeń i dostępu.

Aby zapoznać się z procesem konfigurowania funkcji platformy Azure w celu przetwarzania zdarzeń cyfrowej reprezentacji bliźniaczej, zobacz Konfigurowanie obsługi zdarzeń bliźniaczej reprezentacji bliźniaczej.

Tworzenie punktów końcowych

Aby zdefiniować trasę zdarzeń, deweloperzy muszą najpierw zdefiniować punkty końcowe. Punkt końcowy jest miejscem docelowym poza usługą Azure Digital Twins, która obsługuje połączenie tras. Obsługiwane miejsca docelowe obejmują:

  • Tematy niestandardowe usługi Event Grid
  • Event Hubs
  • Service Bus

Aby utworzyć punkt końcowy, możesz użyć interfejsów API REST usługi Azure Digital Twins, poleceń interfejsu wiersza polecenia lub Azure Portal.

Podczas definiowania punktu końcowego należy podać następujące elementy:

  • Nazwa punktu końcowego
  • Typ punktu końcowego (Event Grid, Event Hubs lub Service Bus)
  • Podstawowe parametry połączenia i pomocnicze parametry połączenia do uwierzytelniania
  • Ścieżka tematu punktu końcowego, na przykład your-topic.westus2.eventgrid.azure.net

Opcjonalnie możesz utworzyć punkt końcowy z uwierzytelnianiem opartym na tożsamościach, aby użyć punktu końcowego z tożsamością przypisaną przez system lub tożsamością zarządzaną przypisaną przez użytkownika. Ta opcja jest dostępna tylko dla punktów końcowych usługi Event Hubs i usługi Service Bus (nie jest obsługiwana w przypadku usługi Event Grid).

Interfejsy API punktu końcowego dostępne na płaszczyźnie sterowania to:

  • Tworzenie punktu końcowego
  • Pobieranie listy punktów końcowych
  • Uzyskiwanie punktu końcowego według nazwy
  • Usuwanie punktu końcowego według nazwy

Aby uzyskać szczegółowe instrukcje dotyczące tworzenia punktu końcowego, zobacz Tworzenie punktów końcowych.

Tworzenie tras zdarzeń

Aby utworzyć trasę zdarzeń, możesz użyć interfejsów API REST usługi Azure Digital Twins, poleceń interfejsu wiersza polecenia lub Azure Portal.

Oto przykład tworzenia trasy zdarzeń w aplikacji klienckiej przy użyciu CreateOrReplaceEventRouteAsync wywołania zestawu SDK platformy .NET (C#):

string eventFilter = "$eventType = 'DigitalTwinTelemetryMessages' or $eventType = 'DigitalTwinLifecycleNotification'";
var er = new DigitalTwinsEventRoute("endpointName", eventFilter);
await client.CreateOrReplaceEventRouteAsync("routeId", er);
  1. DigitalTwinsEventRoute Najpierw tworzony jest obiekt, a konstruktor przyjmuje nazwę punktu końcowego. To endpointName pole identyfikuje punkt końcowy, taki jak Event Hubs, Event Grid lub Service Bus. Te punkty końcowe muszą zostać utworzone w ramach subskrypcji i dołączone do usługi Azure Digital Twins przy użyciu interfejsów API płaszczyzny sterowania przed wykonaniem tego wywołania rejestracji.

  2. Obiekt trasy zdarzeń ma również pole Filtr , którego można użyć do ograniczenia typów zdarzeń, które podążają za tą trasą. Filtr true włącza trasę bez dodatkowego false filtrowania (filtr wyłącza trasę).

  3. Ten obiekt trasy zdarzenia jest następnie przekazywany do CreateOrReplaceEventRouteAsync, wraz z nazwą trasy.

Porada

Wszystkie funkcje zestawu SDK są dostępne w wersjach synchronicznych i asynchronicznych.

Aby uzyskać szczegółowe instrukcje dotyczące tworzenia tras zdarzeń, zobacz Tworzenie tras i filtrów.

Zdarzenia utraconych komunikatów

Jeśli punkt końcowy nie może dostarczyć zdarzenia w określonym czasie lub po kilku próbach dostarczenia zdarzenia, może wysłać zdarzenie nieuprawnione do konta magazynu. Ten proces jest znany jako utracony. Usługa Azure Digital Twins nie żyje po spełnieniu jednego z następujących warunków:

  • Wydarzenie nie jest dostarczane w okresie od czasu do wygaśnięcia
  • Liczba prób dostarczenia zdarzenia przekroczyła limit

Jeśli którykolwiek z warunków zostanie spełniony, zdarzenie zostanie porzucone lub utracony. Domyślnie każdy punkt końcowy nie włącza utraconych komunikatów. Aby ją włączyć, należy określić konto magazynu do przechowywania nieuprawnionych zdarzeń podczas tworzenia punktu końcowego. Następnie możesz ściągnąć zdarzenia z tego konta magazynu, aby rozwiązać problemy z dostawami.

Przed ustawieniem lokalizacji utraconych komunikatów musisz mieć konto magazynu z kontenerem. Adres URL tego kontenera należy podać podczas tworzenia punktu końcowego. Utracony komunikat jest dostarczany jako adres URL kontenera z tokenem SAS. Ten token wymaga tylko write uprawnień dla kontenera docelowego na koncie magazynu. W pełni sformułowany adres URL będzie mieć format: https://<storage-account-name>.blob.core.windows.net/<container-name>?<SAS-token>

Aby dowiedzieć się więcej na temat tokenów SAS, zobacz: Udzielanie ograniczonego dostępu do zasobów usługi Azure Storage przy użyciu sygnatur dostępu współdzielonego (SAS)

Aby dowiedzieć się, jak skonfigurować punkt końcowy za pomocą utraconych komunikatów, zobacz Opcje punktu końcowego: utracony komunikat.

Typy komunikatów o zdarzeniach

Różne typy zdarzeń w usługach IoT Hub i Azure Digital Twins generują różne typy komunikatów powiadomień, jak opisano poniżej.

Typ powiadomienia Nazwa źródła routingu Generowane z...
Powiadomienie o zmianie cyfrowej reprezentacji bliźniaczej Powiadomienie o zmianie cyfrowej reprezentacji bliźniaczej dowolna zmiana właściwości cyfrowej reprezentacji bliźniaczej
Powiadomienie dotyczące cyklu życia cyfrowej reprezentacji bliźniaczej Powiadomienie dotyczące cyklu życia cyfrowej reprezentacji bliźniaczej dowolna operacja tworzenia lub usuwania cyfrowej reprezentacji bliźniaczej
Powiadomienie o zmianie relacji cyfrowej reprezentacji bliźniaczej Powiadomienie o zmianie relacji cyfrowej reprezentacji bliźniaczej dowolna zmiana relacji cyfrowej reprezentacji bliźniaczej
Komunikaty telemetryczne cyfrowej reprezentacji bliźniaczej Komunikaty telemetryczne dowolny komunikat telemetrii

Następne kroki

Przejdź do instrukcji krok po kroku dotyczących konfigurowania punktów końcowych i tras zdarzeń:

Możesz też wykonać czynności opisane w tym przewodniku, aby skonfigurować funkcję platformy Azure na potrzeby obsługi zdarzeń bliźniaczej reprezentacji bliźniaczej w usłudze Azure Digital Twins: