Kierowanie zdarzeń niestandardowych do internetowego punktu końcowego za pomocą witryny Azure Portal i usługi Azure Event Grid

Event Grid to w pełni zarządzana usługa, która umożliwia łatwe zarządzanie zdarzeniami w wielu różnych usługach i aplikacjach platformy Azure. Upraszcza tworzenie aplikacji opartych na zdarzeniach i bezserwerowych. Aby zapoznać się z omówieniem usługi, zobacz Omówienie usługi Event Grid.

W tym artykule wykonasz następujące zadania za pomocą witryny Azure Portal:

  1. Utwórz temat niestandardowy.
  2. Zasubskrybuj temat niestandardowy.
  3. Wyzwól zdarzenie.
  4. Wyświetl wynik. Zazwyczaj użytkownik wysyła zdarzenia do punktu końcowego, w którym następuje przetwarzanie danych zdarzenia i są wykonywane akcje. Jednak aby uprościć ten artykuł, zdarzenia zostaną wysłane do aplikacji internetowej, która zbiera i wyświetla komunikaty.

Wymagania wstępne

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

Rejestrowanie dostawcy zasobów usługi Event Grid

Jeśli usługa Event Grid nie została wcześniej użyta, musisz zarejestrować dostawcę zasobów usługi Event Grid. Jeśli wcześniej użyto usługi Event Grid, przejdź do następnej sekcji.

W witrynie Azure Portal wykonaj następujące czynności:

  1. W menu po lewej stronie wybierz pozycję Subskrypcje.

  2. Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.

  3. Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.

  4. Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.

  5. Wybierz pozycję Microsoft.EventGrid na liście dostawców.

  6. Wybierz pozycję Zarejestruj na pasku poleceń.

    Obraz przedstawiający rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

  7. Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.

    Obraz przedstawiający pomyślną rejestrację dostawcy Microsoft.EventGrid w ramach subskrypcji platformy Azure.

Tworzenie tematu niestandardowego

Temat usługi Event Grid zawiera punkt końcowy zdefiniowany przez użytkownika, do którego są ogłaszane zdarzenia.

  1. Zaloguj się do Portalu Azure.

  2. Na pasku wyszukiwania w temacie wpisz Tematy usługi Event Grid, a następnie wybierz pozycję Tematy usługi Event Grid z listy rozwijanej.

    Zrzut ekranu przedstawiający pasek wyszukiwania portów platformy Azure do wyszukiwania tematów usługi Event Grid.

  3. Na stronie Tematy usługi Event Grid wybierz pozycję + Utwórz na pasku narzędzi.

    Zrzut ekranu przedstawiający przycisk Utwórz temat na stronie Tematy usługi Event Grid.

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

    1. Wybierz swoją subskrypcję platformy Azure.

    2. Wybierz istniejącą grupę zasobów lub wybierz pozycję Utwórz nową, a następnie wprowadź nazwę grupy zasobów.

    3. Podaj unikatową nazwę tematu niestandardowego. Nazwa tematu musi być unikatowa, ponieważ jest reprezentowana przez wpis DNS. Nie należy używać nazwy widocznej na obrazie. Zamiast tego utwórz własną nazwę — musi mieć od 3 do 50 znaków i może zawierać wyłącznie wartości a–z, A–Z, 0–9 i „-”.

    4. Wybierz lokalizację tematu usługi Event Grid.

    5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.

      Strona Tworzenie tematu

    6. Na karcie Przeglądanie i tworzenie na stronie Tworzenie tematu wybierz pozycję Utwórz.

      Przeglądanie ustawień i tworzenie

  5. Po pomyślnym zakończeniu wdrażania wybierz pozycję Przejdź do zasobu, aby przejść do strony Temat usługi Event Grid dla tematu. Pozostaw tę stronę otwartą. Użyjesz go później w przewodniku Szybki start.

    Zrzut ekranu przedstawiający stronę główną tematu usługi Event Grid.

    Uwaga

    Aby zachować prosty przewodnik Szybki start, użyjesz tylko strony Podstawy , aby utworzyć temat. Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania ustawień rezydencji sieci, zabezpieczeń i danych na innych stronach kreatora, zobacz Tworzenie tematu niestandardowego.

Tworzenie punktu końcowego komunikatów

Przed utworzeniem subskrypcji dla tematu niestandardowego utwórz punkt końcowy dla komunikatu o zdarzeniu. 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. Na stronie artykułu wybierz pozycję Wdróż na platformie Azure , aby wdrożyć rozwiązanie w ramach subskrypcji. W witrynie Azure Portal podaj wartości parametrów.

    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 istniejącą grupę zasobów lub utwórz 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. Wdrożenie może potrwać kilka minut. Wybierz pozycję Alerty (ikona dzwonka) w portalu, a następnie wybierz pozycję Przejdź do grupy zasobów.

    Zrzut ekranu przedstawiający komunikat o pomyślnym wdrożeniu 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ą (contosoegriviewer w poniższym przykładzie).

    Zrzut ekranu przedstawiający stronę Grupa zasobów z wdrożonymi zasobami.

  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 stronę usługi App Service z wyróżnionym linkiem do witryny.

  7. Upewnij się, że witryna jest widoczna, ale nie wysłano do niej żadnych zdarzeń.

    Zrzut ekranu przedstawiający przykładową aplikację Podgląd usługi Event Grid.

Subskrybowanie do tematu niestandardowego

Subskrybujesz temat usługi Event Grid, aby poinformować usługę Event Grid o zdarzeniach, które mają być śledzone i gdzie mają być wysyłane zdarzenia.

  1. Teraz na stronie Temat usługi Event Grid dla tematu niestandardowego wybierz pozycję + Subskrypcja zdarzeń na pasku narzędzi.

    Przycisk Dodaj subskrypcję zdarzeń

  2. Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:

    1. Wprowadź nazwę subskrypcji zdarzeń.

    2. Wybierz pozycję Web Hook dla typu punktu końcowego.

    3. Wybierz pozycję Wybierz punkt końcowy.

      Podawanie wartości związanych z subskrypcją zdarzeń

    4. Dla punktu końcowego elementu webhook podaj adres URL aplikacji internetowej i dodaj element api/updates do adresu URL strony głównej. Wybierz pozycję Potwierdź wybór.

      Podawanie adresu URL punktu końcowego

    5. Po powrocie na stronę Tworzenie subskrypcji zdarzeń wybierz pozycję Utwórz.

  3. Wyświetl aplikację sieci Web ponownie i zwróć uwagę, że zdarzenie sprawdzania poprawności subskrypcji zostało do niej wysłane. Wybierz ikonę oka, aby rozwinąć dane zdarzenia. Usługa Event Grid wysyła zdarzenie weryfikacji, aby w punkcie końcowym mogło nastąpić sprawdzenie, czy dane zdarzenia mają być odbierane. Aplikacja internetowa zawiera kod do sprawdzania poprawności subskrypcji.

    Zrzut ekranu aplikacji Podgląd usługi Event Grid ze zdarzeniem Zweryfikowana subskrypcja.

Wysyłanie zdarzenia do tematu

Teraz wyzwólmy zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Możesz wysłać zdarzenie testowe do niestandardowego tematu za pomocą interfejsu wiersza polecenia platformy Azure lub programu PowerShell. Zwykle dane zdarzenia są wysyłane przez aplikację lub usługę platformy Azure.

W pierwszym przykładzie użyto interfejsu wiersza polecenia platformy Azure. Pobierany jest adres URL i klucz dla tematu niestandardowego oraz przykładowe dane zdarzenia. Użyj nazwy tematu niestandardowego dla wartości <topic name>. Tworzy ona przykładowe dane zdarzenia. Element data danych JSON to ładunek zdarzenia. W tym polu można umieścić dowolną poprawnie sformułowaną zawartość JSON. Można też używać pola tematu do zaawansowanego routingu i filtrowania. CURL to narzędzie, które wysyła żądania HTTP.

Interfejs wiersza polecenia platformy Azure

  1. W witrynie Azure Portal wybierz pozycję Cloud Shell. Usługa Cloud Shell zostanie otwarta w dolnym okienku przeglądarki internetowej.

    Wybierz ikonę usługi Cloud Shell

  2. Wybierz pozycję Bash w lewym górnym rogu okna usługi Cloud Shell.

    Zrzut ekranu przedstawiający usługę Cloud Shell z wybraną powłoką Bash w lewym górnym rogu.

  3. Uruchom następujące polecenie, aby uzyskać punkt końcowy tematu: Po skopiowaniu i wklejeniu polecenia zaktualizuj nazwę tematu i nazwę grupy zasobów przed uruchomieniem polecenia. Przykładowe zdarzenia są publikowane w tym punkcie końcowym tematu.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Uruchom następujące polecenie, aby uzyskać klucz dla tematu niestandardowego: po skopiowaniu i wklejeniu polecenia zaktualizuj nazwę tematu i nazwę grupy zasobów przed uruchomieniem polecenia. Jest to klucz podstawowy tematu usługi Event Grid. Aby uzyskać ten klucz z witryny Azure Portal, przejdź do karty Klucze dostępu na stronie Temat usługi Event Grid. Aby można było opublikować zdarzenie w temacie niestandardowym, potrzebny jest klucz dostępu.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Skopiuj następującą instrukcję z definicją zdarzenia i naciśnij klawisz ENTER.

    event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
    
  6. Uruchom następujące polecenie Curl , aby opublikować zdarzenie: W poleceniu nagłówek jest ustawiony na klucz dostępu, aeg-sas-key który został wcześniej wyświetlony.

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    

Azure PowerShell

W drugim przykładzie do wykonania podobnych kroków użyto programu PowerShell.

  1. W witrynie Azure Portal wybierz pozycję Cloud Shell (alternatywnie przejdź do witryny https://shell.azure.com/). Usługa Cloud Shell zostanie otwarta w dolnym okienku przeglądarki internetowej.

    Wybierz ikonę usługi Cloud Shell

  2. W usłudze Cloud Shell wybierz pozycję PowerShell w lewym górnym rogu okna usługi Cloud Shell. Zobacz przykładowy obraz okna usługi Cloud Shell w sekcji interfejsu wiersza polecenia platformy Azure.

  3. Ustaw następujące zmienne. Po skopiowaniu i wklejeniu każdego polecenia zaktualizuj nazwę tematu i nazwę grupy zasobów przed uruchomieniem polecenia:

    Grupa zasobów:

    $resourceGroupName = "<resource group name>"
    

    Nazwa tematu usługi Event Grid:

    $topicName = "<topic name>"
    
  4. Uruchom następujące polecenia, aby uzyskać punkt końcowy i klucze dla tematu:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Przygotuj zdarzenie. Skopiuj i uruchom instrukcje w oknie usługi Cloud Shell.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. Użyj polecenia cmdlet Invoke-WebRequest, aby wysłać zdarzenie.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Weryfikowanie w podglądzie usługi Event Grid

Zdarzenie zostało wyzwolone, a usługa Event Grid wysłała komunikat do punktu końcowego skonfigurowanego podczas subskrybowania. Wyświetl aplikację sieci Web, aby wyświetlić właśnie wysłane zdarzenie.

Podgląd usługi Event Grid

Czyszczenie zasobów

Jeśli zamierzasz kontynuować pracę z tym zdarzeniem, nie usuwaj zasobów utworzonych w tym artykule. W przeciwnym razie usuń zasoby utworzone w ramach tego artykułu.

  1. Wybierz pozycję Grupy zasobów w menu po lewej stronie. Jeśli nie widzisz go w menu po lewej stronie, wybierz pozycję Wszystkie usługi w menu po lewej stronie i wybierz pozycję Grupy zasobów.

    Zrzut ekranu przedstawiający stronę Grupy zasobów.

  2. Wybierz grupę zasobów, aby uruchomić stronę Grupa zasobów.

  3. Wybierz pozycję Usuń grupę zasobów na pasku narzędzi.

  4. Potwierdź usunięcie, wprowadzając nazwę grupy zasobów, a następnie wybierz pozycję Usuń.

    Druga grupa zasobów widoczna na obrazie została utworzona i użyta przez okno usługi Cloud Shell. Usuń go, jeśli nie planujesz później korzystać z okna usługi Cloud Shell.

Następne kroki

Wiesz już, jak tworzyć tematy niestandardowe i subskrypcje zdarzeń. Dowiedz się więcej na temat tego, co może Ci ułatwić usługa Event Grid:

Zapoznaj się z poniższymi przykładami, aby dowiedzieć się więcej na temat publikowania zdarzeń do usługi Event Grid i korzystania z nich przy użyciu różnych języków programowania.