Udostępnij za pośrednictwem


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 w przypadku zdarzeń wewnętrznie w usłudze Azure Digital Twins, jak i wysyłania danych zdarzeń zewnętrznych do usług podrzędnych lub połączonych zasobów obliczeniowych poza usługą.

Routing powiadomień o zdarzeniach z usługi Azure Digital Twins jest procesem dwuetapowym: 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 korzystasz już z usługi 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 niestandardowych punktów końcowych w subskrypcjach. Trzy usługi platformy Azure są obecnie obsługiwane dla 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 Usługa 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 routingu danych usługi Azure Digital Twins za pośrednictwem punktów końcowych do kilku usług podrzędnych.

W przypadku ruchu wychodzącego danych poza usługą Azure Digital Twins typowe cele podrzędne dla tras zdarzeń to usługi 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ń w grafie bliźniaczej reprezentacji, wysyłając dane z cyfrowej reprezentacji bliźniaczej do cyfrowej reprezentacji bliźniaczej. Ta obsługa zdarzeń odbywa się przez połączenie tras zdarzeń za pośrednictwem usługi Event Grid z zasobami obliczeniowymi, takimi jak usługa Azure Functions. Następnie te funkcje definiują sposób odbierania i reagowania bliźniaczych reprezentacji bliźniaczych na zdarzenia.

Gdy zasób obliczeniowy chce zmodyfikować graf bliźniaczej reprezentacji na podstawie zdarzenia otrzymanego za pośrednictwem trasy zdarzeń, warto znać wcześniej, która reprezentacja bliźniacze powinna zostać zmodyfikowana. 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 to:

  • Tematy niestandardowe usługi Event Grid
  • Centra zdarzeń
  • Usługa 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 witryny 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 przy użyciu uwierzytelniania opartego na tożsamościach, aby użyć punktu końcowego z tożsamością zarządzaną przypisaną przez system lub przypisaną przez użytkownika tożsamością zarządzaną. 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 witryny 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 należy utworzyć w ramach subskrypcji i dołączyć 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óre może służyć do ograniczania typów zdarzeń, które podążają za tą trasą. Filtr true umożliwia trasę bez dodatkowego false filtrowania (filtr wyłącza trasę).

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

Napiwek

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

Gdy 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 zapis. Usługa Azure Digital Twins zastrzeli zdarzenie, gdy zostanie spełniony jeden z następujących warunków:

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

Jeśli zostanie spełniony jeden z warunków, zdarzenie zostanie porzucone lub nieaktywne. 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 przy użyciu utraconych komunikatów, zobacz Opcje punktu końcowego: utracony list.

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: