Udostępnij za pośrednictwem


Szybki start: kierowanie zdarzeń niestandardowych do centrum zdarzeń przy użyciu usługi Event Grid i interfejsu wiersza polecenia platformy Azure

Usługa Azure Event Grid to wysoce skalowalny i bezserwerowy broker zdarzeń, którego można użyć do integrowania aplikacji za pośrednictwem zdarzeń. Usługa Event Grid dostarcza zdarzenia do obsługiwanych programów obsługi zdarzeń, a usługa Azure Event Hubs jest jednym z nich.

W tym przewodniku Szybki start użyjesz interfejsu wiersza polecenia platformy Azure do utworzenia tematu niestandardowego usługi Event Grid i subskrypcji usługi Event Hubs dla tego tematu. Następnie wysyłasz przykładowe zdarzenia do tematu niestandardowego i sprawdzasz, czy te zdarzenia są dostarczane do centrum zdarzeń.

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

Tworzenie grupy zasobów

Tematy usługi Event Grid to zasoby platformy Azure i muszą zostać 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.

Wybierz pozycję Otwórz usługę Cloud Shell, aby otworzyć usługę Azure Cloud Shell w okienku po prawej stronie. Wybierz przycisk Kopiuj, aby skopiować polecenie, wklej je w usłudze Cloud Shell, a następnie wybierz Enter, aby uruchomić polecenie.

az group create --name gridResourceGroup --location westus2

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

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.

Zamień nazwę <TOPIC NAME> na unikatową nazwę tematu niestandardowego. Nazwa tematu usługi Event Grid musi być unikatowa, ponieważ wpis system nazw domen (DNS) reprezentuje go.

  1. Określ nazwę tematu:

    topicname="<TOPIC NAME>"
    
  2. Uruchom następujące polecenie, aby utworzyć temat:

    az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
    

Tworzenie centrum zdarzeń

Przed zasubskrybowaniu tematu niestandardowego utwórz punkt końcowy dla komunikatu o zdarzeniu. Utworzysz centrum zdarzeń w celu zbierania zdarzeń.

  1. Określ unikatową nazwę przestrzeni nazw usługi Event Hubs:

    namespace="<EVENT HUBS NAMESPACE NAME>"
    
  2. Uruchom następujące polecenia, aby utworzyć przestrzeń nazw usługi Event Hubs i centrum zdarzeń o nazwie demohub w tej przestrzeni nazw:

    hubname=demohub
    
    az eventhubs namespace create --name $namespace --resource-group gridResourceGroup
    az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup
    

Subskrybowanie tematu niestandardowego

Subskrybujesz temat usługi Event Grid, aby poinformować usługę Event Grid o zdarzeniach, które chcesz śledzić. Poniższy przykład subskrybuje utworzony temat niestandardowy i przekazuje identyfikator zasobu centrum zdarzeń dla punktu końcowego. Punkt końcowy ma następujący format:

/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.EventHub/namespaces/<NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>

Poniższy skrypt pobiera identyfikator zasobu centrum zdarzeń i subskrybuje temat usługi Event Grid. Ustawia on typ punktu końcowego na eventhub i używa identyfikatora centrum dla punktu końcowego.

hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name subtoeventhub \
  --endpoint-type eventhub \
  --endpoint $hubid

Konto używane do tworzenia subskrypcji zdarzeń musi mieć dostęp do zapisu w centrum zdarzeń.

Wysyłanie zdarzenia do tematu niestandardowego

Wyzwalaj zdarzenie, aby zobaczyć, jak usługa Event Grid dystrybuuje komunikat do punktu końcowego. Najpierw pobierz 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 w tym artykule użyjesz przykładowych danych zdarzenia do wysłania do tematu niestandardowego. Zazwyczaj aplikacja lub usługa platformy Azure wysyła dane zdarzenia.

Narzędzie cURL wysyła żądania HTTP. W tym artykule użyjesz biblioteki cURL do wysłania zdarzenia do tematu niestandardowego. Poniższy przykład wysyła trzy zdarzenia do tematu usługi Event Grid:

for i in 1 2 3
do
   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"} ]'
   curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done

W witrynie Azure Portal na stronie Przegląd przestrzeni nazw usługi Event Hubs zwróć uwagę, że usługa Event Grid wysłała te trzy zdarzenia do centrum zdarzeń. Ten sam wykres jest widoczny na stronie Przegląd dla demohub wystąpienia usługi Event Hubs.

Zrzut ekranu przedstawiający stronę portalu z liczbą komunikatów przychodzących 3.

Zazwyczaj tworzysz aplikację, która pobiera komunikaty o zdarzeniach z centrum zdarzeń. Aby uzyskać więcej informacji, zobacz:

Czyszczenie zasobów

Jeśli planujesz kontynuować pracę z tym zdarzeniem, nie usuwaj zasobów utworzonych w tym artykule. W przeciwnym razie użyj następującego polecenia, aby usunąć zasoby:

az group delete --name gridResourceGroup

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:

Aby dowiedzieć się więcej o publikowaniu zdarzeń i używaniu zdarzeń z usługi Event Grid przy użyciu różnych języków programowania, zobacz następujące przykłady: