Snabbstart: Dirigera anpassade händelser till Azure Event Hubs med Azure CLI och Event Grid

Azure Event Grid är en mycket skalbar och serverlös händelsekö som du kan använda för att integrera program med hjälp av 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 artikeln använder du Azure CLI för följande steg:

  1. Skapa ett Event Grid-anpassat ämne.
  2. Skapa en Azure Event Hubs-prenumeration för det anpassade ämnet.
  3. Skicka exempelhändelser till det anpassade ämnet.
  4. Kontrollera att dessa händelser levereras till händelsehubben.

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

Kommentar

Välj Prova bredvid CLI-exemplet för att starta Cloud Shell i den högra rutan. Välj knappen Kopiera för att kopiera kommandot, klistra in det i Cloud Shell-fönstret och tryck sedan på RETUR 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 det representeras av en DNS-post (Domain Name System).

  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 ska vi ska 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 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

Nu ska vi utlösa en händelse och se hur Event Grid distribuerar meddelandet till slutpunkten. Först måste vi ta fram URL och nyckel 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 att göra den här artikeln enklare använder du exempelhändelsedata för att skicka till det anpassade ämnet. Ett program eller en Azure-tjänst skulle vanligtvis skicka sådana händelsedata. CURL är ett verktyg som skickar HTTP-förfrågningar. 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

På sidan Översikt för event hubs-namnområdet i Azure-portalen ser du att Event Grid skickade dessa tre händelser till händelsehubben. Du ser samma diagram på sidan Översikt för instanssidan för demohub Event Hubs.

Image showing the portal page with incoming message count as 3.

Vanligtvis skapar du ett program som hämtar händelser från händelsehubben. Om du vill skapa ett program som får meddelanden från en händelsehubb, se:

Rensa resurser

Om du planerar att fortsätta arbeta med den här händelsen ska du inte rensa upp bland de resurser som skapades i den här artikeln. I annat fall kan du använda kommandona nedan för att ta bort alla resurser som har skapats i den här artikeln.

az group delete --name gridResourceGroup

Nästa steg

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:

Se följande exempel för att lära dig mer om att publicera händelser till och använda händelser från Event Grid med olika programmeringsspråk.