Dela via


Snabbstart: Dirigera anpassade händelser till en händelsehubb med hjälp av Event Grid och Azure CLI

Azure Event Grid är en mycket skalbar och serverlös händelsekö som du kan använda för att integrera program via händelser. Event Grid levererar händelser till händelsehanterare som stöds och Azure Event Hubs är en av dem.

I den här snabbstarten använder du Azure CLI för att skapa ett anpassat Event Grid-ämne och en Event Hubs-prenumeration för det ämnet. Sedan skickar du exempelhändelser till det anpassade ämnet och kontrollerar att dessa händelser levereras till en händelsehubb.

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Skapa en resursgrupp

Event Grid-ämnen är Azure-resurser och de måste placeras i en Azure-resursgrupp. Resursgruppen är en logisk samling där Azure-resurser distribueras och hanteras.

Skapa en resursgrupp med kommandot az group create. I följande exempel skapas en resursgrupp med namnet gridResourceGroup på platsen westus2.

Välj Öppna Cloud Shell för att öppna Azure Cloud Shell i den högra rutan. Välj knappen Kopiera för att kopiera kommandot, klistra in det i Cloud Shell och välj sedan returnyckeln för att köra kommandot.

az group create --name gridResourceGroup --location westus2

Aktivera Event Grid-resursprovidern

  1. Om du inte tidigare har använt Event Grid i din Azure-prenumeration kan du behöva registrera Event Grid-resursprovidern. Registrera providern genom att köra följande kommando:

    az provider register --namespace Microsoft.EventGrid
    
  2. Det kan ta en stund innan registreringen är klar. Kontrollera statusen genom att köra följande kommando:

    az provider show --namespace Microsoft.EventGrid --query "registrationState"
    

    När registrationState är Registered kan du fortsätta.

Skapa en anpassat ämne

Ett Event Grid-ämne innehåller en användardefinierad slutpunkt som du publicerar dina händelser till. I följande exempel skapas det anpassade ämnet i din resursgrupp.

Ersätt <TOPIC NAME> med ett unikt namn för ditt anpassade ämne. Event Grid-ämnesnamnet måste vara unikt eftersom en DNS-post (Domain Name System) representerar det.

  1. Ange ett namn för ämnet:

    topicname="<TOPIC NAME>"
    
  2. Kör följande kommando för att skapa ämnet:

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

Skapa en händelsehubb

Innan du prenumererar på det anpassade ämnet skapar du slutpunkten för händelsemeddelandet. Du skapar en händelsehubb för att samla in händelserna.

  1. Ange ett unikt namn för Event Hubs-namnområdet:

    namespace="<EVENT HUBS NAMESPACE NAME>"
    
  2. Kör följande kommandon för att skapa ett Event Hubs-namnområde och en händelsehubb med namnet demohub i namnområdet:

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

Prenumerera på ett anpassat ämne

Du prenumererar på ett Event Grid-ämne för att berätta för Event Grid vilka händelser du vill spåra. I följande exempel prenumererar du på det anpassade ämne som du skapade och skickar resurs-ID:t för händelsehubben för slutpunkten. Slutpunkten är i det här formatet:

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

Följande skript hämtar resurs-ID:t för händelsehubben och prenumererar på ett Event Grid-ämne. Det ställer in slutpunktstypen på eventhub och använder händelsehubb-ID:t för slutpunkten.

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

Det konto som skapar händelseprenumerationen måste ha skrivåtkomst till händelsehubben.

Skicka en händelse till det anpassade ämnet

Utlös en händelse för att se hur Event Grid distribuerar meddelandet till slutpunkten. Hämta först URL:en och nyckeln för det anpassade ämnet:

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)

För enkelhetens skull i den här artikeln använder du exempelhändelsedata för att skicka till det anpassade ämnet. Vanligtvis skickar ett program eller en Azure-tjänst händelsedata.

CURL-verktyget skickar HTTP-begäranden. I den här artikeln använder du cURL för att skicka händelsen till det anpassade ämnet. I följande exempel skickas tre händelser till Event Grid-ämnet:

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

Observera att Event Grid skickade dessa tre händelser till händelsehubben på sidan Översikt för Event Hubs-namnområdet. Du ser samma diagram på sidan Översikt för Event Hubs-instansen demohub .

Skärmbild som visar portalsidan med ett inkommande meddelandeantal på 3.

Vanligtvis skapar du ett program som hämtar händelsemeddelanden från händelsehubben. Mer information finns i:

Rensa resurser

Om du planerar att fortsätta arbeta med den här händelsen ska du inte rensa resurserna som du skapade i den här artikeln. Annars använder du följande kommando för att ta bort resurserna:

az group delete --name gridResourceGroup

Nu när du vet hur du skapar ämnen och prenumerationer på händelser kan du läsa mer om vad Event Grid kan hjälpa dig med:

Mer information om hur du publicerar händelser till och använder händelser från Event Grid med hjälp av olika programmeringsspråk finns i följande exempel: