Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano główne pojęcia i funkcje skojarzone z tematami przestrzeni nazw.
Zdarzenia
Zdarzenie to najmniejsza ilość informacji, które w pełni opisują coś, co wydarzyło się w systemie. Zdarzenie jest często nazywane odrębnym zdarzeniem, ponieważ reprezentuje odrębny, samodzielny fakt dotyczący systemu, który zapewnia szczegółowe informacje umożliwiające podejmowanie działań. Każde zdarzenie ma wspólne informacje, takie jak source zdarzenia, time miało ono miejsce, oraz unikalny identyfikator. Każde zdarzenie ma również type, który zazwyczaj jest unikatowym identyfikatorem opisującym rodzaj komunikatu, do którego dane zdarzenie jest używane.
Na przykład zdarzenie dotyczące tworzenia nowego pliku w usłudze Azure Storage zawiera szczegóły pliku, takie jak wartość lastTimeModified. Zdarzenie usługi Event Hubs ma adres URL przechwyconego pliku. Zdarzenie dotyczące nowego zamówienia w mikrousłudze Orders może zawierać atrybut orderId oraz atrybut adresu URL wskazujący na reprezentację stanu zamówienia. Oto kilka innych przykładów typów zdarzeń: com.yourcompany.Orders.OrderCreated, org.yourorg.GeneralLedger.AccountChanged, io.solutionname.Auth.MaximumNumberOfUserLoginAttemptsReached.
Oto przykładowe zdarzenie:
{
"specversion" : "1.0",
"type" : "com.yourcompany.order.created",
"source" : "/orders/account/123",
"subject" : "O-28964",
"id" : "A234-1234-1234",
"time" : "2018-04-05T17:31:00Z",
"comexampleextension1" : "value",
"comexampleothervalue" : 5,
"datacontenttype" : "application/json",
"data" : {
"orderId" : "O-28964",
"URL" : "https://com.yourcompany/orders/O-28964"
}
}
Inny rodzaj zdarzenia
Społeczność użytkowników odnosi się również do komunikatów zawierających punkt danych, takich jak odczyt pojedynczego urządzenia lub kliknięcie strony aplikacji internetowej jako "zdarzenia". Zazwyczaj analizujesz tego rodzaju zdarzenie w przedziale czasu, aby uzyskać szczegółowe informacje i podjąć akcję. W dokumentacji usługi Event Grid tego rodzaju zdarzenie jest nazywane punktem danych, danymi przesyłanymi strumieniowo lub po prostu telemetrią. Funkcja brokera protokołu MQTT (Message Queuing Telemetry Transport) usługi Event Grid korzysta z tego typu zdarzeń obok innych typów komunikatów.
Obsługa rozwiązań CloudEvents
Tematy przestrzeni nazw usługi Event Grid akceptują zdarzenia zgodne ze specyfikacją otwartego standardu organizacji Cloud Native Computing Foundation (CNCF) CloudEvents 1.0, przy użyciu powiązania protokołu HTTP w formacie JSON. CloudEvent to rodzaj komunikatu, który zawiera informacje, które są przekazywane, nazywane danymi zdarzenia i metadanymi. Dane zdarzenia w architekturach opartych na zdarzeniach zwykle zawierają informacje ogłaszające zmianę stanu systemu. Metadane CloudEvents składają się z zestawu atrybutów, które zapewniają kontekstowe informacje o komunikacie, takie jak miejsce jego pochodzenia (system źródłowy) i jego typ.
Aby uzyskać więcej informacji, zobacz Obsługa schematu CloudEvents.
Wydawcy
Wydawca to aplikacja, która wysyła zdarzenia do usługi Event Grid. Może to być ta sama aplikacja, z której pochodzą zdarzenia, źródło zdarzeń. Możesz publikować zdarzenia z własnej aplikacji podczas korzystania z tematów przestrzeni nazw.
Źródła zdarzeń
Źródłem zdarzeń jest miejsce, w którym odbywa się zdarzenie. Każde źródło zdarzeń obsługuje co najmniej jeden typ zdarzenia. Na przykład aplikacja jest źródłem zdarzeń niestandardowych, które definiuje system. W przypadku korzystania z tematów w przestrzeni nazw obsługiwanymi źródłami zdarzeń są własne aplikacje.
Przestrzenie nazw
Przestrzeń nazw usługi Event Grid jest kontenerem zarządzania dla następujących zasobów:
| Zasób | Obsługiwany protokół |
|---|---|
| Tematy dotyczące przestrzeni nazw | HTTP |
| Miejsca do tematów | MQTT |
| Klienci | MQTT |
| Grupy klientów | MQTT |
| Certyfikaty urzędu certyfikacji | MQTT |
| Powiązania uprawnień | MQTT |
Korzystając z przestrzeni nazw Azure Event Grid, możesz grupować powiązane zasoby i zarządzać nimi jako jedną jednostką w swojej subskrypcji Azure. Zapewnia unikatową w pełni kwalifikowaną nazwę domeny (FQDN).
Przestrzeń nazw uwidacznia dwa punkty końcowe:
- Punkt końcowy HTTP obsługujący ogólne wymagania związane z komunikatami z użyciem tematów w przestrzeni nazw.
- Punkt końcowy MQTT dla komunikatów IoT lub rozwiązań korzystających z protokołu MQTT.
Przestrzeń nazw zapewnia również zintegrowane z systemem DNS punkty końcowe sieci. Zapewnia również szereg funkcji kontroli dostępu i zarządzania integracją sieci, takich jak filtrowanie publicznych adresów IP i łącza prywatne. Jest to również kontener tożsamości zarządzanych używanych dla zawartych zasobów w przestrzeni nazw.
Oto kilka dodatkowych kwestii dotyczących przestrzeni nazw:
- Przestrzeń nazw to śledzony zasób z właściwościami
tagsilocationPo utworzeniu możesz go znaleźć naresources.azure.com. - Nazwa przestrzeni nazw może mieć długość od 3 do 50 znaków. Może zawierać znaki alfanumeryczne, łączniki (-) oraz brak spacji.
- Nazwa musi być unikatowa dla każdego regionu.
Jednostki przepływności
Jednostki przepustowości (TU) definiują przepustowość zdarzeń przychodzących i wychodzących w przestrzeniach nazw. Aby uzyskać więcej informacji, zobacz Limity przydziału i limity usługi Azure Event Grid.
Automatyczne skalowanie
Autoscale automatycznie dostosowuje liczbę jednostek przepustowości przypisanych do przestrzeni nazw Event Grid na podstawie ruchu w czasie rzeczywistym i wykorzystania zasobów. Stale monitoruje kluczowe wskaźniki wydajności i skaluje pojemność w ramach minimalnych i maksymalnych limitów, które konfigurujesz. Takie zachowanie pomaga utrzymać stałą wydajność podczas skoków obciążenia pracą i zmniejsza koszty w okresach o niskiej aktywności bez konieczności ręcznej interwencji.
Aby użyć Autoscale, włączasz je w przestrzeni nazw i określasz:
- Jednostki o minimalnej przepustowości: Minimalna przepustowość. Przestrzeń nazw nie skaluje się poniżej tej wartości.
- Jednostki o maksymalnym przepustowości: Limit wydajności. Przestrzeń nazw nie skaluje się powyżej tej wartości.
Event Grid ocenia wykorzystanie na podstawie napływu i odpływu zdarzeń, częstotliwości publikowania komunikatów przychodzących i wychodzących MQTT oraz liczby zarejestrowanych klientów MQTT. Gdy dowolna kategoria przekroczy próg skalowania w górę, przydzielanych jest więcej jednostek TU. Gdy wszystkie kategorie spadną poniżej progu redukcji, TU są zwalniane. Okresy schładzania między operacjami skalowania zapobiegają szybkim oscylacjom.
Automatyczne skalowanie jest przydatne w przypadku obciążeń MQTT, gdzie dystrybucja wiadomości do wielu odbiorców i wzrost liczby subskrypcji mogą szybko się zmieniać, gdy urządzenia łączą się i rozłączają. Jest też przydatny do zadań event brokera przy dynamicznych wzorcach ruchu.
Szczegółowe informacje o konfiguracji i limitach pojemności dla poszczególnych jednostek TU można znaleźć w omówieniu funkcji Autoscale oraz w przewodniku z instrukcjami.
Tematy
Temat zawiera zdarzenia, które zostały opublikowane w usłudze Event Grid. Zazwyczaj używasz zasobu tematu do zbierania powiązanych zdarzeń. Tematy w przestrzeni nazw są często nazywane tematami przestrzeni nazw.
Tematy dotyczące przestrzeni nazw
Tematy przestrzeni nazw to tematy tworzone w przestrzeni nazw usługi Event Grid. Aplikacja publikuje zdarzenia w punkcie końcowym przestrzeni nazw HTTP, określając temat przestrzeni nazw, w którym publikowane zdarzenia są logicznie zawarte. Podczas projektowania aplikacji zdecyduj, ile tematów chcesz utworzyć. W przypadku stosunkowo dużych rozwiązań utwórz temat przestrzeni nazw dla każdej kategorii powiązanych zdarzeń. Rozważmy na przykład aplikację, która zarządza kontami użytkowników i inną aplikacją dotyczącą zamówień klientów. Jest mało prawdopodobne, że wszyscy subskrybenci zdarzeń chcą otrzymywać zdarzenia z obu aplikacji. Aby rozdzielić obawy, utwórz dwa tematy przestrzeni nazw: jeden dla każdej aplikacji. Pozwól konsumentom zdarzeń subskrybować temat zgodnie ze swoimi wymaganiami. W przypadku niewielkich rozwiązań możesz preferować wysyłanie wszystkich zdarzeń do jednego tematu.
Tematy w przestrzeni nazw obsługują dostarczanie w trybie ściągania i dostarczanie w trybie wypychania. Zobacz kiedy używać dostarczania w trybie pull lub push, aby zdecydować, czy dostarczanie w trybie pull jest właściwym podejściem w zależności od Twoich wymagań.
Subskrypcje zdarzeń
Subskrypcja zdarzeń to zasób konfiguracyjny powiązany z jednym tematem. Między innymi użyj subskrypcji wydarzenia, aby ustawić kryteria wyboru wydarzenia, które definiują kolekcję wydarzeń dostępnych dla subskrybenta spośród całego zestawu wydarzeń dostępnych w danym temacie. Zdarzenia można filtrować zgodnie z wymaganiami subskrybenta. Można na przykład filtrować zdarzenia według ich typu zdarzenia. Możesz też zdefiniować kryteria filtrowania właściwości danych zdarzeń, jeśli użyjesz obiektu JSON jako wartości dla właściwości danych . Więcej informacji o właściwościach zasobów można znaleźć w dokumentacji API Event Grid REST .
Aby zapoznać się z przykładem tworzenia subskrypcji dla tematów przestrzeni nazw, zobacz Publikowanie i używanie komunikatów przy użyciu tematów przestrzeni nazw przy użyciu interfejsu wiersza polecenia.
Uwaga
Subskrypcje zdarzeń w ramach tematu przestrzeni nazw charakteryzują się uproszczonym modelem zasobów w porównaniu do modelu używanego dla tematów niestandardowych, domenowych, partnerskich i systemowych (Event Grid Basic). Aby uzyskać więcej informacji, zobacz tworzenie, wyświetlanie i zarządzanie subskrypcjami zdarzeń.
Dostarczanie przez pobieranie
W przypadku dostarczania przez pobieranie aplikacja łączy się z usługą Event Grid, aby odczytywać komunikaty z użyciem semantyki podobnej do kolejki. Kiedy aplikacje łączą się z usługą Event Grid, aby odbierać zdarzenia, kontrolują tempo i czas ich odbierania. Aplikacje konsumenckie mogą również używać prywatnych punktów końcowych podczas nawiązywania połączenia z usługą Event Grid w celu odczytywania zdarzeń przy użyciu prywatnej przestrzeni IP.
Dostarczanie w trybie pull obsługuje następujące operacje służące do odczytywania komunikatów i kontrolowania ich stanu: odbieranie, potwierdzanie, zwalnianie, odrzucanie oraz odnawianie blokady. Aby uzyskać więcej informacji, zobacz omówienie dostarczania typu pull.
Struktura danych przy odbieraniu zdarzeń przy użyciu dostarczania w trybie pull
Gdy dostarczasz zdarzenia przy użyciu dostarczania przez ściąganie, usługa Event Grid zawiera tablicę obiektów, która z kolei zawiera obiekty event i brokerProperties. Wartością właściwości event jest zdarzenie CloudEvent dostarczone w trybie zawartości strukturalnej. Obiekt brokerProperties zawiera token blokady skojarzony z dostarczonym rozwiązaniem CloudEvent. Następujący obiekt JSON to przykładowa odpowiedź z operacji odbierania , która zwraca dwa zdarzenia:
{
"value": [
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDXYS23Z+5Hq754VqQjxywE",
"deliveryCount": 2
},
"event": {
"specversion": "1.0",
"id": "A234-1234-1235",
"source": "/mycontext",
"time": "2018-04-05T17:31:00Z",
"type": "com.example.someeventtype",
"data": "some data"
}
},
{
"brokerProperties": {
"lockToken": "CiYKJDUwNjE4QTFFLUNDODQtNDZBQy1BN0Y4LUE5QkE3NjEwNzQxMxISChDLeaL+nRJLNq3/5NXd/T0b",
"deliveryCount": 1
},
"event": {
"specversion": "1.0",
"id": "B688-1234-1235",
"source": "/mycontext",
"type": "com.example.someeventtype",
"time": "2018-04-05T17:31:00Z",
"data": {
"somekey" : "value",
"someOtherKey" : 9
}
}
}
]
}
Dostarczanie typu push
W przypadku dostarczania wypychanego usługa Event Grid wysyła zdarzenia do miejsca docelowego skonfigurowanego w subskrypcji zdarzeń w trybie push. Zapewnia niezawodną logikę ponawiania prób w przypadku, gdy miejsce docelowe nie może odbierać zdarzeń.
Ważne
Dostarczanie wypychanych przestrzeni nazw usługi Event Grid obecnie obsługuje usługę Azure Event Hubs jako miejsce docelowe. W przyszłości przestrzenie nazw usługi Event Grid będą obsługiwać więcej miejsc docelowych, w tym wszystkich miejsc docelowych obsługiwanych przez usługę Event Grid Basic.
Dostarczanie zdarzeń usługi Event Hubs
Usługa Event Grid używa zestawu SDK usługi Event Hubs do wysyłania zdarzeń do usługi Event Hubs przy użyciu protokołu AMQP. Zdarzenia są wysyłane jako tablica bajtów z każdym elementem w tablicy zawierającej element CloudEvent.
Dostarczanie przez wypychanie i pobieranie
Usługa Event Grid obsługuje dostarczanie zdarzeń w modelu wypychania i ściągania przy użyciu HTTP. W przypadku dostarczania wypychającego w subskrypcji zdarzeń definiuje się miejsce docelowe — webhook lub usługę Azure — do którego usługa Event Grid wysyła zdarzenia. W przypadku dostarczania w trybie pull aplikacje subskrybentów łączą się z usługą Event Grid, aby odbierać zdarzenia. Dostarczanie w trybie pull jest obsługiwane dla tematów w przestrzeni nazw Event Grid.
Ważne
Usługa Event Hubs jest obsługiwana jako element docelowy subskrypcji tematów w przestrzeni nazw. W kolejnych wersjach przestrzenie nazw usługi Event Grid będą obsługiwać wszystkie miejsca docelowe obecnie dostępne w usłudze Event Grid Basic, a także dodatkowe miejsca docelowe.
Kiedy używać dostarczania typu push, a kiedy typu pull
Poniżej przedstawiono ogólne wskazówki, które pomogą Ci zdecydować, kiedy stosować dostarczanie typu pull lub push.
Dostarczanie przez pobieranie
- Potrzebujesz pełnej kontroli co do tego, kiedy odbierać zdarzenia. Na przykład aplikacja może nie być przez cały czas, nie wystarczająco stabilna lub przetwarzać dane w określonym czasie.
- Potrzebujesz pełnej kontroli nad przetwarzaniem zdarzeń. Na przykład usługa podrzędna lub warstwa w aplikacji konsumenta ma problem uniemożliwiający przetwarzanie zdarzeń. W takim przypadku interfejs API dostarczania w trybie pull umożliwia aplikacji konsumenta zwrócenie wcześniej odczytanego zdarzenia brokerowi, aby mogło zostać dostarczone później.
- Chcesz używać łączy prywatnych przy odbieraniu zdarzeń, co jest możliwe tylko w przypadku dostarczania typu pull, a nie typu push.
- Nie masz możliwości udostępnienia punktu końcowego i korzystania z dostarczania w trybie push, ale możesz połączyć się z usługą Event Grid, aby odbierać zdarzenia.
Dostarczanie typu push
- Chcesz uniknąć ciągłego sondowania, aby określić, czy nastąpiła zmiana stanu systemu. Zamiast tego używasz usługi Event Grid do wysyłania zdarzeń do Ciebie w momencie wystąpienia zmian stanu.
- Masz aplikację, która nie może wykonywać wywołań wychodzących. Na przykład Organizacja może być zaniepokojona eksfiltracją danych. Jednak aplikacja może odbierać zdarzenia za pośrednictwem publicznego punktu końcowego.
Powiązana zawartość
- Aby zapoznać się z wprowadzeniem do usługi Event Grid, zobacz Wprowadzenie do usługi Azure Event Grid.
- Aby rozpocząć pracę z tematami przestrzeni nazw, zobacz Publikowanie zdarzeń przy użyciu tematów przestrzeni nazw.