Övning – Dirigera anpassade händelser till webbslutpunkten med hjälp av Azure CLI

Slutförd

I den här övningen lär du dig att:

  • Aktivera en Event Grid-resursprovider
  • Skapa en anpassat ämne
  • Skapa en slutpunkt för meddelanden
  • Prenumerera på ett anpassat ämne
  • Skicka en händelse till ett anpassat ämne

Förutsättningar

  • Ett Azure-konto med en aktiv prenumeration. Om du inte redan har en sådan kan du registrera dig för en kostnadsfri utvärderingsversion på https://azure.com/free.

Skapa en resursgrupp

I det här avsnittet öppnar du terminalen och skapar några variabler som används under resten av övningen för att göra kommandoposten och skapandet av unika resursnamn lite enklare.

  1. Starta Cloud Shell: https://shell.azure.com

  2. Välj Bash som gränssnitt.

  3. Kör följande kommandon för att skapa variablerna. Ersätt <myLocation> med en region nära dig.

    let rNum=$RANDOM*$RANDOM
    myLocation=<myLocation>
    myTopicName="az204-egtopic-${rNum}"
    mySiteName="az204-egsite-${rNum}"
    mySiteURL="https://${mySiteName}.azurewebsites.net"
    
  4. Skapa en resursgrupp för de nya resurser som du skapar.

    az group create --name az204-evgrid-rg --location $myLocation
    

Aktivera en Event Grid-resursprovider

Kommentar

Det här steget behövs bara för prenumerationer som inte tidigare har använt Event Grid.

Registrera Event Grid-resursprovidern az provider register med hjälp av kommandot .

az provider register --namespace Microsoft.EventGrid

Det kan ta några minuter innan registreringen har slutförts. Kontrollera statusen genom att köra följande kommando.

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

Skapa en anpassat ämne

Skapa ett anpassat ämne med hjälp az eventgrid topic create av kommandot . Namnet måste vara unikt eftersom det är en del av DNS-posten.

az eventgrid topic create --name $myTopicName \
    --location $myLocation \
    --resource-group az204-evgrid-rg

Skapa en slutpunkt för meddelanden

Innan vi prenumererar på det anpassade ämnet måste vi skapa slutpunkten för händelsemeddelandet. Slutpunkten utför vanligtvis åtgärder baserat på informationen om händelsen. Följande skript använder en fördefinierad 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. Det genererar också ett unikt namn för webbplatsen.

  1. Skapa en meddelandeslutpunkt. Det kan ta några minuter att slutföra distributionen.

    az deployment group create \
        --resource-group az204-evgrid-rg \
        --template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/main/azuredeploy.json" \
        --parameters siteName=$mySiteName hostingPlanName=viewerhost
    
    echo "Your web app URL: ${mySiteURL}"
    

    Kommentar

    Det kan ta några minuter att slutföra det här kommandot.

  2. På en ny flik går du till den URL som genererades i slutet av föregående skript för att säkerställa att webbappen körs. Webbplatsen bör visas utan några meddelanden.

    Dricks

    Låt webbläsaren vara igång. Den används för att visa uppdateringar.

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.

  1. Prenumerera på ett anpassat ämne med hjälp az eventgrid event-subscription create av kommandot . Följande skript hämtar det nödvändiga prenumerations-ID:t från ditt konto och använder i skapandet av händelseprenumerationen.

    endpoint="${mySiteURL}/api/updates"
    subId=$(az account show --subscription "" | jq -r '.id')
    
    az eventgrid event-subscription create \
        --source-resource-id "/subscriptions/$subId/resourceGroups/az204-evgrid-rg/providers/Microsoft.EventGrid/topics/$myTopicName" \
        --name az204ViewerSub \
        --endpoint $endpoint
    
  2. Visa ditt webbprogram igen och observera att en händelse för verifieringen av 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.

Skicka en händelse till det anpassade ämnet

Utlös en händelse för att se hur Event Grid distribuerar meddelandet till slutpunkten.

  1. Hämta URL och nyckel för det anpassade ämnet.

    topicEndpoint=$(az eventgrid topic show --name $myTopicName -g az204-evgrid-rg --query "endpoint" --output tsv)
    key=$(az eventgrid topic key list --name $myTopicName -g az204-evgrid-rg --query "key1" --output tsv)
    
  2. Skapa händelsedata som ska skickas. Vanligtvis skickar ett program eller en Azure-tjänst händelsedata, vi skapar data i övningens syfte.

    event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Contoso", "model": "Northwind"},"dataVersion": "1.0"} ]'
    
  3. Använd curl för att skicka händelsen till ämnet.

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $topicEndpoint
    
  4. Visa din webbapp om du vill se händelsen som du har skickat. Välj ögonikonen för att utöka informationen om händelsen.

    {
    "id": "29078",
    "eventType": "recordInserted",
    "subject": "myapp/vehicles/motorcycles",
    "eventTime": "2019-12-02T22:23:03+00:00",
    "data": {
        "make": "Contoso",
        "model": "Northwind"
    },
    "dataVersion": "1.0",
    "metadataVersion": "1",
    "topic": "/subscriptions/{subscription-id}/resourceGroups/az204-evgrid-rg/providers/Microsoft.EventGrid/topics/az204-egtopic-589377852"
    }
    

Rensa resurser

När du inte längre behöver resurserna i den här övningen använder du följande kommando för att ta bort resursgruppen och associerade resurser.

az group delete --name az204-evgrid-rg --no-wait