Szybki start: kierowanie zdarzeń niestandardowych do internetowego punktu końcowego za pomocą interfejsu wiersza polecenia platformy Azure i usługi Event Grid
W tym artykule użyjesz interfejsu wiersza polecenia platformy Azure do utworzenia tematu niestandardowego w usłudze Azure Event Grid, zasubskrybowania tematu niestandardowego i wyzwolenia zdarzenia w celu wyświetlenia wyniku.
Uwaga
Jeśli dopiero zaczynasz korzystać z usługi Azure Event Grid, zobacz Co to jest usługa Azure Event Grid , aby zapoznać się z omówieniem usługi przed rozpoczęciem pracy z tym samouczkiem.
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.
Po zakończeniu przekonasz się, że dane zdarzenia zostały wysłane do aplikacji internetowej.
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- Ten artykuł wymaga wersji 2.0.70 lub nowszej interfejsu wiersza polecenia platformy Azure. W przypadku korzystania z usługi Azure Cloud Shell najnowsza wersja jest już zainstalowana.
Tworzenie grupy zasobów
Tematy usługi Event Grid to zasoby platformy Azure i muszą być umieszczone w grupie zasobów platformy Azure. Grupa zasobów to kolekcja logiczna przeznaczona do wdrażania zasobów platformy Azure i zarządzania nimi.
Utwórz grupę zasobów za pomocą polecenia az group create. Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie gridResourceGroup w lokalizacji westus2. Jeśli wybierzesz pozycję Wypróbuj, w okienku po prawej stronie zostanie wyświetlone okno usługi Azure Cloud Shell. Następnie wybierz pozycję Kopiuj , aby skopiować polecenie i wkleić je w oknie usługi Azure Cloud Shell, a następnie naciśnij ENTER, aby uruchomić polecenie. Zmień nazwę grupy zasobów i lokalizację, jeśli chcesz.
az group create --name gridResourceGroup --location westus2
Włączanie dostawcy zasobów usługi Event Grid
Jeśli usługa Event Grid nie była wcześniej używana w ramach subskrypcji platformy Azure, może być konieczne zarejestrowanie dostawcy zasobów usługi Event Grid. Uruchom następujące polecenie, aby zarejestrować dostawcę:
az provider register --namespace Microsoft.EventGrid
Ukończenie rejestracji może zająć trochę czasu. Aby sprawdzić stan, uruchom następujące polecenie:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Gdy właściwość
registrationState
uzyska wartośćRegistered
, można kontynuować.
Tworzenie tematu niestandardowego
Temat usługi Event Grid zawiera punkt końcowy zdefiniowany przez użytkownika, do którego są ogłaszane zdarzenia. Poniższy przykład obejmuje tworzenie tematu niestandardowego w grupie zasobów przy użyciu powłoki Bash w usłudze Azure Cloud Shell. Zamień <your-topic-name>
na unikatową nazwę tematu. Nazwa tematu niestandardowego musi być unikatowa, ponieważ jest częścią wpisu System nazw domen (DNS). Ponadto musi mieć długość od 3 do 50 znaków i zawierać wyłącznie wartości a–z, A–Z, 0–9 i „-”.
Skopiuj następujące polecenie, określ nazwę tematu, a następnie naciśnij ENTER, aby uruchomić polecenie.
topicname=<your-topic-name>
Użyj polecenia ,
az eventgrid topic create
aby utworzyć temat niestandardowy.az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
Tworzenie punktu końcowego komunikatów
Przed subskrybowaniem tematu niestandardowego utwórzmy punkt końcowy dla komunikatu o zdarzeniach. 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.
Skopiuj następujące polecenie, określ nazwę aplikacji internetowej (przykład podglądu usługi Event Grid) i naciśnij ENTER, aby uruchomić polecenie. Zastąp
<your-site-name>
unikatową nazwą aplikacji internetowej. Nazwa aplikacji internetowej musi być unikatowa, ponieważ stanowi część wpisu DNS.sitename=<your-site-name>
Uruchom polecenie ,
az deployment group create
aby wdrożyć aplikację internetową przy użyciu szablonu usługi Azure Resource Manager.az deployment group create \ --resource-group gridResourceGroup \ --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \ --parameters siteName=$sitename hostingPlanName=viewerhost
Ukończenie wdrożenia może potrwać kilka minut. Po pomyślnym wdrożeniu należy wyświetlić aplikację sieci Web i upewnić się, że jest uruchomiona. W przeglądarce sieci Web przejdź do: https://<your-site-name>.azurewebsites.net
Powinna być widoczna witryna internetowa bez żadnych aktualnie wyświetlanych komunikatów.
Subskrybowanie 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 te zdarzenia. Poniższy przykład ilustruje subskrybowanie utworzonego tematu niestandardowego i przekazanie adresu URL z aplikacji internetowej jako punktu końcowego dla powiadomień o zdarzeniach.
Punkt końcowy dla aplikacji internetowej musi zawierać sufiks /api/updates/
.
Skopiuj następujące polecenie, zastąp
$sitename
ciąg nazwą aplikacji internetowej utworzonej w poprzednim kroku, a następnie naciśnij ENTER, aby uruchomić polecenie.endpoint=https://$sitename.azurewebsites.net/api/updates
Uruchom następujące polecenie, aby uzyskać identyfikator zasobu utworzonego tematu.
topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
Uruchom następujące polecenie, aby utworzyć subskrypcję tematu niestandardowego przy użyciu punktu końcowego.
az eventgrid event-subscription create \ --source-resource-id $topicresourceid \ --name demoViewerSub \ --endpoint $endpoint
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 niestandardowego
Wyzwólmy zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Po pierwsze uzyskajmy adres URL i klucz tematu niestandardowego.
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)
Dla uproszczenia czynności opisanych w tym artykule do tematu niestandardowego zostaną wysłane przykładowe dane zdarzenia. Zwykle dane zdarzenia są wysyłane przez aplikację lub usługę platformy Azure. Poniższy przykład tworzy przykładowe dane zdarzenia:
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"} ]'
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. W tym artykule do wysłania zdarzenia do tematu używane jest narzędzie CURL.
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
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.
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.EventGrid/topics/{topic}"
}]
Czyszczenie zasobów
Jeśli zamierzasz kontynuować pracę z tym zdarzeniem lub aplikacją podglądu zdarzeń, nie usuwaj zasobów utworzonych w tym artykule. W przeciwnym razie użyj poniższego polecenia, aby usunąć zasoby utworzone w ramach tego artykułu.
az group delete --name gridResourceGroup
Następne kroki
Wiesz już, jak tworzyć tematy 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.