Udostępnij za pośrednictwem


Dostarczanie zdarzeń do elementów webhook przy użyciu tematów przestrzeni nazw — Azure Portal (wersja zapoznawcza)

Artykuł zawiera instrukcje krok po kroku dotyczące publikowania zdarzeń w usłudze Azure Event Grid w formacie JSON cloudEvents i dostarczania tych zdarzeń przy użyciu modelu dostarczania wypychanego. Aby być konkretnym, należy opublikować zdarzenia w temacie przestrzeni nazw w usłudze Event Grid i wypchnąć te zdarzenia z subskrypcji zdarzeń do miejsca docelowego programu obsługi elementów webhook. Aby uzyskać więcej informacji na temat modelu dostarczania wypychanych, zobacz Push delivery overview (Omówienie dostarczania wypychanych).

Uwaga

Przestrzenie nazw usługi Azure Event Grid obecnie obsługują token sygnatury dostępu współdzielonego i uwierzytelnianie kluczy dostępu.

Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.

Tworzenie przestrzeni nazw usługi Event Grid

Przestrzeń nazw usługi Event Grid udostępnia zdefiniowany przez użytkownika punkt końcowy, do którego są ogłaszane zdarzenia. Poniższy przykład tworzy przestrzeń nazw w grupie zasobów przy użyciu powłoki Bash w usłudze Azure Cloud Shell. Nazwa przestrzeni nazw musi być unikatowa, ponieważ jest częścią wpisu systemu nazw domen (DNS).

  1. Przejdź do witryny Azure Portal.

  2. Na pasku wyszukiwania w temacie wpisz Event Grid Namespaces, a następnie wybierz pozycję Event Grid Namespaces z wyników.

    Zrzut ekranu przedstawiający pasek wyszukiwania w witrynie Azure Portal.

  3. Na stronie Przestrzenie nazw usługi Event Grid wybierz pozycję + Utwórz na pasku poleceń. Zrzut ekranu przedstawiający stronę Przestrzenie nazw usługi Event Grid z wybranym przyciskiem Utwórz na pasku poleceń.

  4. Na stronie Tworzenie przestrzeni nazw wykonaj następujące kroki:

    1. Wybierz subskrypcję platformy Azure, w której chcesz utworzyć przestrzeń nazw.
    2. Utwórz nową grupę zasobów, wybierając pozycję Utwórz nową lub wybierając istniejącą grupę zasobów.
    3. Wprowadź nazwę przestrzeni nazw.
    4. Wybierz lokalizację, w której chcesz utworzyć grupę zasobów.
    5. Następnie wybierz pozycję Przegląd + utwórz.
      Zrzut ekranu przedstawiający stronę Tworzenie przestrzeni nazw.
    6. Na stronie Przeglądanie i tworzenie wybierz pozycję Utwórz.
  5. Na stronie Wdrożenie wybierz pozycję Przejdź do zasobu po pomyślnym wdrożeniu.

Pobieranie klucza dostępu

  1. Na stronie Przestrzeń nazw usługi Event Grid wybierz pozycję Klucze dostępu w menu po lewej stronie.
  2. Wybierz przycisk kopiowania obok klucza dostępu. Zrzut ekranu przedstawiający stronę Przestrzenie nazw usługi Event Grid z wybraną kartą Klucze dostępu.
  3. Zapisz klucz dostępu gdzieś. Użyjesz go w dalszej części tego przewodnika Szybki start.

Tworzenie tematu w przestrzeni nazw

Utwórz temat zawierający wszystkie zdarzenia opublikowane w punkcie końcowym przestrzeni nazw.

  1. Wybierz pozycję Tematy w menu po lewej stronie.
  2. Na stronie Tematy wybierz pozycję + Temat na pasku poleceń. Zrzut ekranu przedstawiający stronę Tematy.
  3. Na stronie Tworzenie tematu wykonaj następujące kroki:
    1. Wprowadź nazwę tematu.
    2. Wybierz pozycję Utwórz.
      Zrzut ekranu przedstawiający stronę Tworzenie tematu.

Tworzenie punktu końcowego komunikatów

Przed zasubskrybowaniem zdarzeń utwórzmy punkt końcowy dla komunikatu zdarzenia. Zazwyczaj w punkcie końcowym akcje są wykonywane na podstawie danych zdarzenia. Aby uprościć ten przewodnik Szybki start, wdrożysz wstępnie utworzoną aplikację internetową, która wyświetla komunikaty o zdarzeniach. Wdrożone rozwiązanie zawiera plan usługi App Service, aplikację internetową usługi App Service i kod źródłowy z repozytorium GitHub.

  1. Wybierz pozycję Wdróż na platformie Azure w celu wdrożenia rozwiązania w subskrypcji.

    Przycisk wdrażania szablonu usługi Resource Manager na platformie Azure.

  2. Na stronie Wdrażanie niestandardowe wykonaj następujące czynności:

    1. W obszarze Grupa zasobów wybierz grupę zasobów utworzoną podczas tworzenia konta magazynu. Po zakończeniu pracy z samouczkiem łatwiej będzie wyczyścić grupę zasobów.

    2. W polu Nazwa witryny wprowadź nazwę aplikacji internetowej.

    3. W polu Nazwa planu hostingu wprowadź nazwę planu usługi App Service, która będzie używana do hostowania aplikacji internetowej.

    4. Wybierz pozycję Przejrzyj i utwórz.

      Zrzut ekranu przedstawiający stronę wdrożenia niestandardowego.

  3. Na stronie Przeglądanie i tworzenie wybierz pozycję Utwórz.

  4. Ukończenie wdrożenia trwa kilka minut. Na stronie Wdrażanie wybierz pozycję Przejdź do grupy zasobów.

    Zrzut ekranu przedstawiający stronę pomyślnego wdrożenia z linkiem umożliwiającym przejście do grupy zasobów.

  5. Na stronie Grupa zasobów na liście zasobów wybierz utworzoną aplikację internetową. Zostanie również wyświetlony plan usługi App Service i konto magazynu na tej liście.

    Zrzut ekranu przedstawiający wybór aplikacji internetowej w grupie zasobów.

  6. Na stronie App Service aplikacji internetowej wybierz adres URL, aby przejść do witryny internetowej. Adres URL powinien mieć następujący format: https://<your-site-name>.azurewebsites.net.

    Zrzut ekranu przedstawiający wybór linku umożliwiającego przejście do aplikacji internetowej.

  7. Upewnij się, że witryna jest widoczna, ale do niej nie są jeszcze publikowane żadne zdarzenia.

    Zrzut ekranu przedstawiający nową witrynę.

    Ważne

    Pozostaw otwarte okno Podgląd usługi Azure Event Grid, aby zobaczyć zdarzenia w miarę ich ogłaszania.

Tworzenie subskrypcji zdarzeń

Utwórz subskrypcję zdarzeń ustawiając tryb dostarczania na Wypychanie, która obsługuje dostarczanie wypychane.

  1. Przejdź do karty lub okna ze stroną Przestrzeń nazw usługi Event Grid otwartą na karcie lub w oknie z otwartą stroną Przestrzeń nazw usługi Event Hubs.
  2. Na stronie Przestrzeń nazw usługi Event Grid wybierz pozycję Tematy w menu po lewej stronie.
  3. Na stronie Tematy wybierz temat utworzony w poprzednim kroku.
  4. Wybierz pozycję + Subskrypcja na pasku poleceń. Zrzut ekranu przedstawiający stronę Temat z wybranym przyciskiem Utwórz subskrypcję.
  5. Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:
    1. Na karcie Podstawowe wprowadź nazwę subskrypcji zdarzeń.

    2. Wybierz pozycję Wypchnij w trybie dostarczania zdarzeń.

    3. W polu Typ punktu końcowego wybierz pozycję Web Hook.

    4. Wybierz pozycję Konfiguruj punkt końcowy.

      Zrzut ekranu przedstawiający stronę Tworzenie subskrypcji z wybraną pozycją Wypychanie w trybie dostarczania i elementem WebHook jako typem punktu końcowego.

    5. Na stronie Web Hook określ punkt końcowy (na przykład ): https://spegridsite0520.azurewebsites.net/api/updates), jak pokazano w poniższym przykładzie, a następnie wybierz pozycję Potwierdź wybór.

      Zrzut ekranu przedstawiający stronę webhook z wartością punktu końcowego subskrybenta.

    6. Po powrocie na stronę Tworzenie subskrypcji wybierz pozycję Utwórz.

      Zrzut ekranu przedstawiający stronę Tworzenie subskrypcji z wypełnionymi wszystkimi polami.

Wysyłanie zdarzeń do tematu

Teraz wyślij przykładowe zdarzenie do tematu przestrzeni nazw, wykonując kroki opisane w tej sekcji.

Deklarowanie zmiennych

  1. Uruchom usługę Cloud Shell w witrynie Azure Portal. Przejdź do powłoki Bash.

    Zrzut ekranu przedstawiający usługę Cloud Shell.

  2. Uruchom następujące polecenie, aby zadeklarować zmienną do przechowywania nazwy grupy zasobów. Zastąp RESOUREGROUPNAME ciąg nazwą grupy zasobów platformy Azure.

    resource_group=RESOURCEGROUPNAME
    
  3. W usłudze Cloud Shell uruchom następujące polecenie, aby zadeklarować zmienną do przechowywania nazwy przestrzeni nazw. Zastąp NAMESPACENAME ciąg nazwą przestrzeni nazw usługi Event Grid.

    namespace=NAMESPACENAME
    
  4. Uruchom następujące polecenie, aby zadeklarować zmienną do przechowywania zanotowaną wcześniej wartość klucza dostępu. Zastąp ACCESSKEY ciąg wartością klucza dostępu do przestrzeni nazw usługi Event Grid.

    key=ACCESSKEY
    
  5. W usłudze Cloud Shell uruchom następujące polecenie, aby zadeklarować zmienną do przechowywania nazwy przestrzeni nazw.

    topic=TOPICNAME
    

Publikowanie zdarzenia

  1. Pobierz nazwę hosta przestrzeni nazw. Służy do tworzenia punktu końcowego HTTP przestrzeni nazw, do którego są wysyłane zdarzenia. Następujące operacje były najpierw dostępne w wersji 2023-06-01-previewinterfejsu API . Nazwę hosta można również uzyskać na stronie Przegląd przestrzeni nazw usługi Event Grid w witrynie Azure Portal.

    publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
    
  2. Utwórz przykładowe zdarzenie zgodne z rozwiązaniem CloudEvents :

    event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
    

    Element data to ładunek zdarzenia. W tym polu można umieścić dowolną poprawnie sformułowaną zawartość JSON. Aby uzyskać więcej informacji na temat właściwości (nazywanych również atrybutami kontekstu), które mogą przejść w zdarzeniu, zobacz specyfikacje CloudEvents .

  3. Użyj narzędzia CURL, aby wysłać zdarzenie do tematu. CURL to narzędzie, które wysyła żądania HTTP.

    curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
    

Sprawdź, czy podgląd usługi Azure Event Grid odebrał zdarzenie

Sprawdź, czy aplikacja internetowa Podgląd usługi Azure Event Grid wyświetla zdarzenia odebrane z usługi Event Grid.

Zrzut ekranu przedstawiający podgląd usługi Azure Event Grid z przykładowym odebranym zdarzeniem.

W tym przewodniku Szybki start użyto elementu webhook jako procedury obsługi zdarzeń. Aby uzyskać przewodnik Szybki start, który używa centrum zdarzeń platformy Azure jako procedury obsługi zdarzeń, zobacz Dostarczanie zdarzeń do usługi Azure Event Hubs przy użyciu tematów przestrzeni nazw.