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:
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);
DigitalTwinsEventRoute
Najpierw tworzony jest obiekt, a konstruktor przyjmuje nazwę punktu końcowego. ToendpointName
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.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 dodatkowegofalse
filtrowania (filtr wyłącza trasę).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:
- Konfigurowanie obsługi zdarzeń bliźniaczej reprezentacji bliźniaczej.