Dirigera anpassade händelser till webbslutpunkten med Azure-portalen och Azure 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 förenklar skapandet av händelsedrivna och serverlösa program. En översikt över tjänsten finns i Översikt över Event Grid.

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

  1. Skapa ett anpassat ämne.
  2. Prenumerera på det anpassade ämnet.
  3. Utlös 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-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Registrera Event Grid-resursprovidern

Om du inte har använt Event Grid tidigare måste du registrera Event Grid-resursprovidern. Om du har använt Event Grid tidigare går du vidare till nästa avsnitt.

Gör följande i Azure-portalen:

  1. Välj Prenumerationer på den vänstra menyn.

  2. Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.

  3. På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.

  4. Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.

  5. Välj Microsoft.EventGrid i providerlistan.

  6. Välj Registrera i kommandofältet.

    Bild som visar registreringen av Microsoft.EventGrid-providern med Azure-prenumerationen.

  7. Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.

    Bild som visar lyckad registrering av Microsoft.EventGrid-providern med Azure-prenumerationen.

Skapa en anpassat ämne

Ett Event Grid-ämne innehåller en användardefinierad slutpunkt som du publicerar dina händelser till.

  1. Logga in på Azure-portalen.

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

    Skärmbild som visar sökfältet i Azure-porten för att söka efter Event Grid-ämnen.

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

    Skärmbild som visar knappen Skapa ämne på sidan Event Grid-ämnen.

  4. Följ dessa steg på sidan Skapa ämne :

    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 + skapasidan Skapa ämne väljer du Skapa.

      Granska inställningar och skapa

  5. När distributionen har slutförts väljer du Gå till resurs för att gå till sidan Event Grid-ämne för ditt ämne. Håll den här sidan öppen. Du använder den senare i snabbstarten.

    Skärmbild som visar startsidan för Event Grid-ämnet.

    Kommentar

    För att hålla snabbstarten enkel använder du bara sidan Grundläggande för att skapa ett ämne. Detaljerade steg om hur du konfigurerar inställningar för nätverks-, säkerhets- och datahemvist på andra sidor i guiden finns i Skapa ett anpassat ämne.

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

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

    Knapp för att distribuera Resource Manager-mallen till Azure.

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

    1. För Resursgrupp väljer du en befintlig resursgrupp eller skapar en resursgrupp.

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

    3. Som Värdplansnamn anger du ett namn för App Service-planen 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 (klockikon) i portalen och välj sedan Gå till resursgrupp.

    Skärmbild som visar distributionsmeddelandet med en länk för att navigera till resursgruppen.

  5. På sidan Resursgrupp går du till listan över resurser och väljer den webbapp (contosoegriviewer i följande exempel) som du skapade.

    Skärmbild som visar sidan Resursgrupp med de distribuerade resurserna.

  6. På App Service-sidan för din webbapp väljer du URL:en för att navigera till webbplatsen. URL:en ska vara i det här formatet: https://<your-site-name>.azurewebsites.net.

    Skärmbild som visar App Service-sidan med länken till webbplatsen markerad.

  7. Bekräfta att du ser webbplatsen men att inga händelser har publicerats än.

    Skärmbild som visar Exempelappen för Loggboken i Event Grid.

Prenumerera på 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 händelserna ska skickas.

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

    Knappen Lägg till händelseprenumeration

  2. Följ dessa steg på sidan Skapa händelseprenumeration :

    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. På sidan Skapa händelseprenumeration väljer du 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.

    Skärmbild av Appen Loggboken i Event Grid med händelsen Prenumerations verifierad.

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-portalen väljer du Cloud Shell. Cloud Shell öppnas i den nedre rutan i webbläsaren.

    Välj Cloud Shell-ikon

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

    Skärmbild som visar Cloud Shell med Bash valt i det övre vänstra hörnet.

  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 ämnesnamnetoch resursgruppens namn innan du kör kommandot. Det är den primära nyckeln i Event Grid-ämnet. Om du vill hämta den här nyckeln från Azure-portalen växlar du till fliken Åtkomstnycklarsidan Event Grid-ämne . För att kunna publicera en händelse i 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 huvudet inställt på åtkomstnyckeln 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 utföra liknande steg.

  1. I Azure-portalen väljer du Cloud Shell (du kan också gå till https://shell.azure.com/). Cloud Shell öppnas i den nedre rutan i webbläsaren.

    Välj Cloud Shell-ikon

  2. I Cloud Shell väljer du PowerShell i det övre vänstra hörnet i Cloud Shell-fönstret. Se cloud shell-exempelfönsterbilden 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 -instruktionerna i 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}
    

Verifiera i Loggboken

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.

Visningsprogram för Event Grid

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.

    Skärmbild som visar sidan 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 skapades och användes 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:

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.