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

I denna quickstart använder du Azure CLI för att skapa ett anpassat ämne i Azure Event Grid, prenumerera på det anpassade ämnet och trigga en exempelhändelse för att visa resultatet.

Normalt kan du skicka händelser till en slutpunkt som bearbetar informationen om händelsen och utför åtgärder. Men för att förenkla denna snabbstart skickar du exempelhändelser till en webbapp som samlar in och visar meddelandena. När du är klar ser du händelsedata i webbappen, som visas i följande bild:

Skärmbild som visar exempeltillämpningen för Event Grid-visningsprogrammet med en exempelhändelse.

Om du inte har något Azure-konto skapar du ett kostnadsfritt konto innan du börjar.

Förutsättningar

  • Denna quickstart kräver version 2.0.70 eller senare av Azure CLI. Om du använder Azure Cloud Shell är den senaste versionen redan installerad.
  • Om du är ny på Azure Event Grid, se What's Azure Event Grid för en översikt av tjänsten innan du startar denna quickstart.

Skapa en resursgrupp

Event Grid-ämnen är Azure-resurser som du måste placera i en Azure-resursgrupp. Resursgruppen är en logisk samling där du distribuerar och hanterar Azure-resurser.

Skapa en resursgrupp med kommandot az group create. I följande exempel skapas en resursgrupp med namnet gridResourceGroup på platsen westus2. Byt namn på resursgruppen och platsen om du vill.

az group create --name gridResourceGroup --location westus2

Aktivera Event Grid-resursprovidern

  1. Om det är första gången du använder 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 ett anpassat ämne

Ett Event Grid-ämne innehåller en användardefinierad slutpunkt som du publicerar dina händelser till. Följande exempel skapar det anpassade ämnet i din resursgrupp genom att använda Bash i Azure Cloud Shell. Ersätt <your-topic-name> med ett unikt namn för ditt ämne. Det anpassade ämnesnamnet måste vara unikt eftersom det är en del av DNS-posten (Domain Name System). Dessutom måste den vara mellan 3–50 tecken och endast innehålla värdena a–ö, A–ö, 0–9 och "-"

  1. Kopiera följande kommando, ange ett namn för ämnet och välj Enter för att köra kommandot.

    topicname=<your-topic-name>
    
  2. az eventgrid topic create Använd kommandot för att skapa ett anpassat ämne.

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

Skapa en slutpunkt för meddelanden

Innan du prenumererar på det anpassade ämnet skapar du slutpunkten för händelsemeddelandet. Slutpunkten utför vanligtvis åtgärder baserat på informationen om händelsen. För att förenkla denna snabbstart, distribuera en färdigbyggd webbapp som visar händelsemeddelandena. Den distribuerade lösningen innehåller en App Service-plan,en webbapp för App Service och källkod från GitHub.

  1. Kopiera följande kommando, ange ett namn för webbappen (Event Grid Viewer exempel) och välj Enter för att köra kommandot. Ersätt <your-site-name> med ett unikt namn för din webbapp. Webbappnamnet måste vara unikt eftersom det är en del av DNS-posten.

    sitename=<your-site-name>
    
  2. Kör az deployment group create för att distribuera webbappen med hjälp av en Azure Resource Manager-mall.

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

Det kan ta några minuter innan driftsättningen slutförs. När distributionen har slutförts kontrollerar du webbappen för att försäkra dig om att den körs. I en webbläsare navigerar du till: https://<your-site-name>.azurewebsites.net

Du borde se sidan utan några meddelanden som visas.

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 och var dessa händelser ska skickas. I följande exempel prenumererar vi på det anpassade ämne du just skapat, och URL från din webbapp skickas som slutpunkt för händelseavisering.

Slutpunkten för ditt webbprogram måste innehålla suffixet /api/updates/.

  1. Kopiera följande kommando, ersätt $sitename med namnet på webbappen du skapade i föregående steg och välj Enter för att köra kommandot.

    endpoint=https://$sitename.azurewebsites.net/api/updates
    
  2. Kör följande kommando för att hämta resurs-ID:t för det ämne som du skapade.

    topicresourceid=$(az eventgrid topic show --resource-group gridResourceGroup --name $topicname --query "id" --output tsv)
    
  3. Kör följande kommando för att skapa en prenumeration på det anpassade ämnet med hjälp av slutpunkten.

    az eventgrid event-subscription create \
      --source-resource-id $topicresourceid \
      --name demoViewerSub \
      --endpoint $endpoint
    

    Gå tillbaka till webbappen och lägg märke till att en valideringshändelse för prenumerationen har skickats till den. Välj ögonikonen för att utöka informationen om händelsen. Händelserutnätet skickar valideringshändelsen så att slutpunkten kan bekräfta att den vill ta emot händelsedata. Webbappen inkluderar kod för att verifiera prenumerationen.

    Skärmdump som visar Event Grid Viewer-exemplet med en prenumerationsvalideringshändelse.

Skicka en händelse till ditt anpassade ämne

Nu ska vi utlösa en händelse och se hur Event Grid distribuerar meddelandet till slutpunkten. Först, hämta 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 att förenkla denna snabbstart, använd exempelhändelsedata för att skicka till det anpassade ämnet. Vanligtvis skickar ett program eller En Azure-tjänst händelsedata. I följande exempel skapas exempelhändelsedata:

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"} ]'

Elementet data av JSON är händelsens nyttolast. All välformulerad JSON kan stå i det här fältet. Du kan också använda ämnesfältet för avancerad omdirigering och filtrering.

cURL är ett verktyg som skickar HTTP-förfrågningar. I denna snabbstart använder du cURL för att skicka händelsen till ämnet.

curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint

Du utlöste händelsen och Event Grid skickade meddelandet till den slutpunkt som du konfigurerade när du prenumererade. Öppna webbappen för att se händelsen som du just skickade.

[{
  "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}"
}]

Rensa resurser

Om du planerar att fortsätta arbeta med den här händelsen eller appen Händelsevisaren, ta inte bort resurserna som du skapade i den här snabbstarten. Annars, använd följande kommando för att ta bort de resurser du skapade i denna snabbstart.

az group delete --name gridResourceGroup --yes --no-wait

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:

För att lära dig om publicering av händelser till och konsumtion av händelser från Event Grid i olika programmeringsspråk, se följande exempel: