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.

    Image showing the registration of Microsoft.EventGrid provider with the Azure subscription.

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

    Image showing the successful registration of Microsoft.EventGrid provider with the Azure subscription.

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.

    Screenshot showing the Azure port search bar to search for Event Grid topics.

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

    Screenshot showing the Create Topic button on Event Grid topics page.

  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.

      Create Topic page

    6. På fliken Granska + skapasidan Skapa ämne väljer du Skapa.

      Review settings and create

  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.

    Screenshot showing the Event Grid topic home page.

    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.

    Button to deploy the Resource Manager template to Azure.

  2. Gör följande på 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. 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.

      Screenshot showing the Custom deployment page.

  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.

    Screenshot showing the successful deployment message with a link to navigate to the resource group.

  5. På sidan Resursgrupp går du till listan över resurser och väljer den webbapp som du skapade. Du ser även App Service-planen och lagringskontot i den här listan.

    Screenshot that shows the Resource Group page with the deployed resources.

  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.

    Screenshot that shows the App Service page with the link to the site highlighted.

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

    Screenshot that shows the Event Grid Viewer sample app.

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.

    Add event subscription button

  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.

      Provide event subscription values

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

      Provide endpoint URL

    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.

    Screenshot of the Event Grid Viewer app with the Subscription Validated event.

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.

    Select Cloud Shell icon

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

    Screenshot that shows the Cloud Shell with Bash selected in the top-left corner.

  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.

    Select Cloud Shell icon

  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.

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.

    Screenshot that shows the Resource Groups page.

  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.