Szybki start: kierowanie zdarzeń usługi Azure Cache for Redis do internetowego punktu końcowego za pomocą interfejsu wiersza polecenia platformy Azure

Azure Event Grid to usługa obsługi zdarzeń dla chmury. W tym przewodniku Szybki start użyjesz interfejsu wiersza polecenia platformy Azure do subskrybowania zdarzeń usługi Azure Cache for Redis, wyzwalania zdarzenia i wyświetlania wyników.

Zazwyczaj użytkownik wysyła zdarzenia do punktu końcowego, w którym następuje przetwarzanie danych zdarzenia i są wykonywane akcje. Jednak w celu uproszczenia tego przewodnika Szybki start będziesz wysyłać zdarzenia do aplikacji internetowej, która będzie zbierać i wyświetlać komunikaty. Po wykonaniu kroków opisanych w tym przewodniku Szybki start zobaczysz, ż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.

Azure Cloud Shell

Na platforma Azure hostowane jest Azure Cloud Shell, interaktywne środowisko powłoki, z którego można korzystać w przeglądarce. Do pracy z usługami platformy Azure można używać programu Bash lub PowerShell w środowisku Cloud Shell. Aby uruchomić kod w tym artykule, możesz użyć wstępnie zainstalowanych poleceń usługi Cloud Shell bez konieczności instalowania niczego w środowisku lokalnym.

Aby uruchomić środowisko Azure Cloud Shell:

Opcja Przykład/link
Wybierz pozycję Wypróbuj w prawym górnym rogu bloku kodu lub polecenia. Wybranie pozycji Wypróbuj nie powoduje automatycznego skopiowania kodu lub polecenia do usługi Cloud Shell. Screenshot that shows an example of Try It for Azure Cloud Shell.
Przejdź do witryny https://shell.azure.com lub wybierz przycisk Uruchom Cloud Shell, aby otworzyć środowisko Cloud Shell w przeglądarce. Button to launch Azure Cloud Shell.
Wybierz przycisk Cloud Shell na pasku menu w prawym górnym rogu witryny Azure Portal. Screenshot that shows the Cloud Shell button in the Azure portal

Aby użyć usługi Azure Cloud Shell:

  1. Uruchom usługę Cloud Shell.

  2. Wybierz przycisk Kopiuj w bloku kodu (lub bloku poleceń), aby skopiować kod lub polecenie.

  3. Wklej kod lub polecenie do sesji usługi Cloud Shell, wybierając klawisze Ctrl+Shift V w systemach Windows i Linux lub wybierając pozycję Cmd+Shift++V w systemie macOS.

  4. Wybierz klawisz Enter, aby uruchomić kod lub polecenie.

Jeśli zdecydujesz się zainstalować interfejs wiersza polecenia i korzystać z niego lokalnie, ten przewodnik Szybki start będzie wymagał najnowszej wersji interfejsu wiersza polecenia platformy Azure (2.0.70 lub nowszej). Aby dowiedzieć się, jaka wersja jest używana, uruchom polecenie az --version. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Jeśli nie korzystasz z usługi Cloud Shell, musisz się najpierw zalogować za pomocą polecenia az login.

Tworzenie grupy zasobów

Tematy usługi Event Grid są wdrażane jako poszczególne zasoby platformy Azure i muszą być aprowizowane w grupie zasobów platformy Azure. Grupa zasobów to logiczna kolekcja, w której są wdrażane i zarządzane zasoby platformy Azure.

Utwórz grupę zasobów za pomocą polecenia az group create.

Poniższy przykład obejmuje tworzenie grupy zasobów o nazwie <resource_group_name> w lokalizacji westcentralus. Zamień <resource_group_name> na unikatową nazwę grupy zasobów.

az group create --name <resource_group_name> --location westcentralus

Tworzenie wystąpienia pamięci podręcznej

#/bin/bash

# Create a Basic C0 (256 MB) Azure Cache for Redis instance
az redis create --name <cache_name> --resource-group <resource_group_name> --location westcentralus --sku Basic --vm-size C0

Tworzenie punktu końcowego komunikatów

Przed zasubskrybowaniem tematu utwórzmy punkt końcowy dla komunikatów 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 zbudowaną aplikację sieci Web, która będzie 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.

Zastąp <your-site-name> unikatową nazwą aplikacji internetowej. Nazwa aplikacji internetowej musi być unikatowa, ponieważ stanowi część wpisu DNS.

sitename=<your-site-name>

az deployment group create \
  --resource-group <resource_group_name> \
  --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
  --parameters siteName=$sitename hostingPlanName=viewerhost

Wdrożenie 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.

Włączanie dostawcy zasobów usługi Event Grid

  1. 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
    
  2. 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ć.

Subskrybowanie wystąpienia usługi Azure Cache for Redis

W tym kroku zasubskrybujesz temat, aby poinformować usługę Event Grid o zdarzeniach, które chcesz śledzić i gdzie wysyłać te zdarzenia. Poniższy przykład subskrybuje utworzone wystąpienie usługi Azure Cache for Redis i przekazuje adres URL z aplikacji internetowej jako punkt końcowy powiadomienia o zdarzeniach. Zastąp element <event_subscription_name> nazwą Twojej subskrypcji zdarzeń. Jako parametrów <resource_group_name> i <cache_name> użyj utworzonych wcześniej wartości.

Punkt końcowy dla aplikacji internetowej musi zawierać sufiks /api/updates/.

cacheId=$(az redis show --name <cache_name> --resource-group <resource_group_name> --query id --subscription <subscription_id> --output tsv)
endpoint=https://$sitename.azurewebsites.net/api/updates

az eventgrid event-subscription create \
  --source-resource-id $cacheId \
  --name <event_subscription_name> \
  --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.

Azure Event Grid Viewer.

Wyzwalanie zdarzenia z usługi Azure Cache for Redis

Teraz wyzwólmy zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Wyeksportujmy dane przechowywane w wystąpieniu usługi Azure Cache for Redis. Ponownie użyj wartości parametru {cache_name} i {resource_group_name} utworzonego wcześniej.

az redis export  --ids '/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}' \
    --prefix '<prefix_for_exported_files>' \
    --container '<SAS_url>'  

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": "e1ceb52d-575c-4ce4-8056-115dec723cff",
  "eventType": "Microsoft.Cache.ExportRDBCompleted",
  "topic": "/subscriptions/{subscription_id}/resourceGroups/{resource_group_name}/providers/Microsoft.Cache/Redis/{cache_name}",
  "data": {
    "name": "ExportRDBCompleted",
    "timestamp": "2020-12-10T18:07:54.4937063+00:00",
    "status": "Succeeded"
  },
  "subject": "ExportRDBCompleted",
  "dataversion": "1.0",
  "metadataVersion": "1",
  "eventTime": "2020-12-10T18:07:54.4937063+00:00"
}]

Czyszczenie zasobów

Jeśli planujesz kontynuować pracę z tym wystąpieniem usługi Azure Cache for Redis i subskrypcją zdarzeń, nie usuwaj zasobów utworzonych w tym przewodniku Szybki start. Jeśli nie planujesz kontynuować, użyj następującego polecenia, aby usunąć zasoby utworzone w tym przewodniku Szybki start.

Zamień <resource_group_name> na utworzoną powyżej grupę zasobów.

az group delete --name <resource_group_name>

Następne kroki

Teraz, gdy wiesz, jak tworzyć tematy i subskrypcje zdarzeń, dowiedz się więcej o zdarzeniach usługi Azure Cache for Redis i o tym, co usługa Event Grid może ci pomóc: