Dirigera anpassade händelser till en webbslutpunkt med Azure Portal och Event Grid

Event Grid är en fullständigt hanterad tjänst som gör att du enkelt kan hantera händelser i många olika Azure-tjänster och -program. Det gör det enklare att skapa händelsedrivna och serverlösa program. En översikt över tjänsten finns i Event Grid översikt.

I den här artikeln använder du Azure Portal att utföra följande uppgifter:

  1. Skapa ett anpassat ämne.
  2. Prenumerera på det anpassade ämnet.
  3. Utlöste händelsen.
  4. 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 enkelt beskriva den här artikeln kan skicka du händelser till en webbapp som samlar in och visar meddelanden.

Förutsättningar

Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.

Aktivera Event Grid-resursprovider

Om du inte har använt Event Grid förut i din Azure-prenumeration kan du behöva registrera Event Grid-resursprovidern.

I Azure-portalen:

  1. Välj prenumerationer på den vänstra menyn.
  2. Välj den prenumeration som du använder för Event Grid.
  3. Välj resurs leverantörer på den vänstra menyn under Inställningar.
  4. Hitta Microsoft.EventGrid.
  5. Om du inte är registrerad väljer du Registrera.

Det kan ta en stund att slutföra registreringen. Välj Uppdatera för att uppdatera statusen. När Status är Registrerad är du redo att fortsätta.

Skapa en anpassat ämne

Ett event grid-ämne tillhandahåller en användardefinierad slutpunkt där du publicerar dina händelser.

  1. Logga in på Azure-portalen.

  2. I sökfältet i ämnet skriver du Event Grid ämnen och väljer sedan Event Grid ämnen i listrutan.

    Sök efter och välj Event Grid avsnitt

  3. På sidan Event Grid avsnitt väljer du + Skapa i verktygsfältet.

  4. På sidan Skapa ämne följer du dessa steg:

    1. Välj din Azure-prenumeration.

    2. Välj en befintlig resursgrupp eller välj Skapa ny och ange ett namn för resursgruppen.

    3. Ange ett unikt namn för det anpassade ämnet. Ämnesnamnet måste vara unikt eftersom det representeras av en DNS-post. Använd inte det namn som visas på bilden. I stället skapar du ett eget namn som måste bestå av 3–50 tecken och enbart får innehålla a-z, A-Z, 0-9 och ”-”.

    4. Välj en plats för Event Grid-ämnet.

    5. Välj Granska + skapa längst ned på sidan.

      Sidan Skapa ämne

    6. På fliken Granska + skapa på sidan Skapa ämne väljer du Skapa.

      Granska inställningar och skapa

  5. När distributionen har lyckats väljer du Gå till resurs för att gå Event Grid sidan Ämne för ditt ämne. Låt den här sidan vara öppen. Du använder den senare i snabbstarten.

    Skärmbild som visar Event Grid för ämnet

Skapa en slutpunkt för meddelanden

Innan du skapar en prenumeration för det anpassade ämnet skapar du en slutpunkt för händelsemeddelandet. Slutpunkten utför vanligtvis åtgärder baserat på informationen om händelsen. För att förenkla den här snabbstarten kan du distribuera en förskapad webbapp som visar meddelanden om händelser. Den distribuerade lösningen innehåller en App Service-plan,en webbapp för App Service och källkod från GitHub.

  1. På artikelsidan väljer du Distribuera till Azure för att distribuera lösningen till din prenumeration. Ange parametervärdena i Azure Portal.

    Button to deploy to Azure.

  2. Gör följande sidan Anpassad distribution:

    1. För Resursgrupp väljer du den resursgrupp som du skapade när du skapade lagringskontot. Det blir enklare för dig att rensa när du är klar med självstudien genom att ta bort resursgruppen.

    2. För Webbplatsnamn anger du ett namn för webbappen.

    3. I Värdplansnamn anger du ett namn App Service plan som ska användas som värd för webbappen.

    4. Välj Granska + skapa.

      Skärmbild som visar sidan Anpassad distribution.

  3. På sidan Granska + skapa väljer du Skapa.

  4. Det kan ta några minuter att slutföra distributionen. Välj Aviseringar (klockikonen) i portalen och välj sedan Gå till resursgruppen.

    Avisering – gå till resursgruppen.

  5. Välj den webbapp som du skapade i listan över resurser på sidan Resursgrupp. Du ser även App Service plan och lagringskontot i den här listan.

    Välj webbplats.

  6. App Service för webbappen väljer du url:en för att gå till webbplatsen. URL:en ska ha det här formatet: https://<your-site-name>.azurewebsites.net .

    Gå till webbplatsen.

  7. Bekräfta att du ser webbplatsen men att inga händelser har publicerats till den ännu.

    Visa ny webbplats.

Prenumerera på anpassat ämne

Du prenumererar på ett Event Grid-ämne därför att du vill ange för Event Grid vilka händelser du vill följa och vart du vill skicka händelserna.

  1. På sidan Event Grid för ditt anpassade ämne väljer du + Händelseprenumeration i verktygsfältet.

    Knappen Lägg till händelseprenumeration

  2. På sidan Skapa händelseprenumeration följer du dessa steg:

    1. Ange ett namn för händelseprenumerationen.

    2. Välj Web Hook som Slutpunktstyp.

    3. Välj Välj en slutpunkt.

      Ange värden för händelseprenumerationen

    4. För webhookens slutpunkt anger du webbappens webbadress och lägger till api/updates till startsidans webbadress. Välj Bekräfta val.

      Ange slutpunktens webbadress

    5. Gå tillbaka till sidan Skapa händelseprenumeration och välj Skapa.

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

    Visa prenumerationshändelse

Skicka en händelse till ditt ämne

Nu ska vi utlösa en händelse och se hur Event Grid distribuerar meddelandet till slutpunkten. Du kan använda antingen Azure CLI eller PowerShell och skicka en testhändelse till det anpassade ämnet. Ett program eller en Azure-tjänst skulle vanligtvis skicka sådana händelsedata.

I det första exemplet används Azure CLI. URL och nyckel för det anpassade ämnet hämtas, och exempeldata för händelsen. Använd ditt anpassade ämnesnamn för <topic name>. Exempelhändelsedata skapas. 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.

Azure CLI

  1. I Azure Portal väljer du Cloud Shell. Den Cloud Shell öppnas i det nedre fönstret i webbläsaren.

    Välj Cloud Shell ikon

  2. Välj Bash i det övre vänstra hörnet i Cloud Shell fönster.

    Cloud Shell – Bash

  3. Kör följande kommando för att hämta slutpunkten för ämnet: När du har kopierat och klistrat in kommandot uppdaterar du ämnesnamnet och resursgruppens namn innan du kör kommandot. Du publicerar exempelhändelser till den här ämnesslutpunkten.

    endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
    
  4. Kör följande kommando för att hämta nyckeln för det anpassade ämnet: När du har kopierat och klistrat in kommandot uppdaterar du ämnesnamnet och resursgruppens namn innan du kör kommandot. Det är den primära nyckeln för event grid-ämnet. Om du vill hämta den här Azure Portal du till fliken Åtkomstnycklarsidan Event Grid ämne. För att kunna publicera en händelse till ett anpassat ämne behöver du åtkomstnyckeln.

    key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
    
  5. Kopiera följande instruktion med händelsedefinitionen och tryck på RETUR.

    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"} ]'
    
  6. Kör följande Curl-kommando för att publicera händelsen: I kommandot aeg-sas-key är rubriken inställd på den åtkomstnyckel som du fick tidigare.

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

Azure PowerShell

I det andra exemplet används PowerShell för att göra liknande steg.

  1. I Azure Portal väljer du Cloud Shell (du kan också gå till https://shell.azure.com/ ). Den Cloud Shell öppnas i det nedre fönstret i webbläsaren.

    Välj Cloud Shell ikon

  2. I Cloud Shell väljer du PowerShell i det övre vänstra hörnet Cloud Shell fönstret. Se exempelfönstret Cloud Shell i avsnittet Azure CLI.

  3. Ange följande variabler. När du har kopierat och klistrat in varje kommando uppdaterar du ämnesnamnet och resursgruppens namn innan du kör kommandot:

    Resursgrupp:

    $resourceGroupName = "<resource group name>"
    

    Event Grid ämnesnamn:

    $topicName = "<topic name>"
    
  4. Kör följande kommandon för att hämta slutpunkten och nycklarna för ämnet:

    $endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint
    $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
    
  5. Förbered händelsen. Kopiera och kör -isatserna Cloud Shell fönstret.

    $eventID = Get-Random 99999
    
    #Date format should be SortableDateTimePattern (ISO 8601)
    $eventDate = Get-Date -Format s
    
    #Construct body using Hashtable
    $htbody = @{
        id= $eventID
        eventType="recordInserted"
        subject="myapp/vehicles/motorcycles"
        eventTime= $eventDate   
        data= @{
            make="Ducati"
            model="Monster"
        }
        dataVersion="1.0"
    }
    
    #Use ConvertTo-Json to convert event body from Hashtable to JSON Object
    #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax
    $body = "["+(ConvertTo-Json $htbody)+"]"
    
  6. Använd cmdleten Invoke-WebRequest för att skicka händelsen.

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    

Kontrollera i Event Grid visningsprogrammet

Du har utlöst händelsen och Event Grid skickade meddelandet till den slutpunkt som du konfigurerade när du prenumererade. Visa din webbapp om du vill se händelsen som du har skickat.

Event Grid Viewer

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 tar du bort alla resurser som du har skapat i den här artikeln.

  1. Välj Resursgrupper på den vänstra menyn. Om du inte ser den på den vänstra menyn väljer du Alla tjänster på den vänstra menyn och väljer Resursgrupper.

    Resursgrupper

  2. Välj resursgruppen för att starta sidan Resursgrupp.

  3. Välj Ta bort resursgrupp i verktygsfältet.

  4. Bekräfta borttagningen genom att ange namnet på resursgruppen och välj Ta bort.

    Den andra resursgruppen som visas i avbildningen har skapats och använts av Cloud Shell fönstret. Ta bort den om du inte planerar att använda Cloud Shell-fönstret senare.

Nästa steg

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

I följande exempel kan du läsa mer om att publicera händelser till och använda händelser från Event Grid med olika programmeringsspråk.