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:
- Utwórz temat niestandardowy.
- Zasubskrybuj temat niestandardowy.
- Wyzwól zdarzenie.
- 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:
W menu po lewej stronie wybierz pozycję Subskrypcje.
Wybierz subskrypcję, której chcesz użyć dla usługi Event Grid z listy subskrypcji.
Na stronie Subskrypcja wybierz pozycję Dostawcy zasobów w obszarze Ustawienia w menu po lewej stronie.
Wyszukaj ciąg Microsoft.EventGrid i upewnij się, że stan to Niezarejestrowany.
Wybierz pozycję Microsoft.EventGrid na liście dostawców.
Wybierz pozycję Zarejestruj na pasku poleceń.
Odśwież, aby upewnić się, że stan microsoft.EventGrid został zmieniony na Zarejestrowany.
Tworzenie tematu niestandardowego
Temat usługi Event Grid zawiera punkt końcowy zdefiniowany przez użytkownika, do którego są ogłaszane zdarzenia.
Zaloguj się do Portalu Azure.
Na pasku wyszukiwania w temacie wpisz Tematy usługi Event Grid, a następnie wybierz pozycję Tematy usługi Event Grid z listy rozwijanej.
Na stronie Tematy usługi Event Grid wybierz pozycję + Utwórz na pasku narzędzi.
Na stronie Tworzenie tematu wykonaj następujące kroki:
Wybierz swoją subskrypcję platformy Azure.
Wybierz istniejącą grupę zasobów lub wybierz pozycję Utwórz nową, a następnie wprowadź nazwę grupy zasobów.
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 „-”.
Wybierz lokalizację tematu usługi Event Grid.
Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.
Na karcie Przeglądanie i tworzenie na stronie Tworzenie tematu wybierz pozycję Utwórz.
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.
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.
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.
Na stronie Wdrażanie niestandardowe wykonaj następujące czynności:
W obszarze Grupa zasobów wybierz istniejącą grupę zasobów lub utwórz grupę zasobów.
W polu Nazwa witryny wprowadź nazwę aplikacji internetowej.
W polu Nazwa planu hostingu wprowadź nazwę planu usługi App Service, która będzie używana do hostowania aplikacji internetowej.
Wybierz pozycję Przejrzyj i utwórz.
Na stronie Przeglądanie i tworzenie wybierz pozycję Utwórz.
Wdrożenie może potrwać kilka minut. Wybierz pozycję Alerty (ikona dzwonka) w portalu, a następnie wybierz pozycję Przejdź do grupy zasobów.
Na stronie Grupa zasobów na liście zasobów wybierz utworzoną aplikację internetową (contosoegriviewer w poniższym przykładzie).
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
.Upewnij się, że witryna jest widoczna, ale nie wysłano do niej żadnych zdarzeń.
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.
Teraz na stronie Temat usługi Event Grid dla tematu niestandardowego wybierz pozycję + Subskrypcja zdarzeń na pasku narzędzi.
Na stronie Tworzenie subskrypcji zdarzeń wykonaj następujące kroki:
Wprowadź nazwę subskrypcji zdarzeń.
Wybierz pozycję Web Hook dla typu punktu końcowego.
Wybierz pozycję Wybierz punkt końcowy.
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.Po powrocie na stronę Tworzenie subskrypcji zdarzeń wybierz pozycję Utwórz.
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.
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
W witrynie Azure Portal wybierz pozycję Cloud Shell. Usługa Cloud Shell zostanie otwarta w dolnym okienku przeglądarki internetowej.
Wybierz pozycję Bash w lewym górnym rogu okna usługi Cloud Shell.
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)
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)
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"} ]'
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.
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.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.
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>"
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
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)+"]"
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.
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.
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.
Wybierz grupę zasobów, aby uruchomić stronę Grupa zasobów.
Wybierz pozycję Usuń grupę zasobów na pasku narzędzi.
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:
- Event Grid — informacje
- Kierowanie zdarzeń usługi Blob Storage do niestandardowego internetowego punktu końcowego
- Monitorowanie zmian maszyn wirtualnych za pomocą usług Azure Event Grid i Logic Apps
- Przesyłanie strumieniowe danych Big Data do magazynu danych
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.