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:
- Skapa ett anpassat ämne.
- Prenumerera på det anpassade ämnet.
- Utlös händelsen.
- 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:
Välj Prenumerationer på den vänstra menyn.
Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.
På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.
Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.
Välj Microsoft.EventGrid i providerlistan.
Välj Registrera i kommandofältet.
Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.
Skapa en anpassat ämne
Ett Event Grid-ämne innehåller en användardefinierad slutpunkt som du publicerar dina händelser till.
Logga in på Azure-portalen.
I sökfältet i ämnet skriver du Event Grid Topics och väljer sedan Event Grid Topics i listrutan.
På sidan Event Grid-ämnen väljer du + Skapa i verktygsfältet.
Följ dessa steg på sidan Skapa ämne :
Välj din Azure-prenumeration.
Välj en befintlig resursgrupp eller välj Skapa ny och ange ett namn för resursgruppen.
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 ”-”.
Välj en plats för Event Grid-ämnet.
Välj Granska + skapa längst ned på sidan.
På fliken Granska + skapa på sidan Skapa ämne väljer du Skapa.
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.
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.
På artikelsidan väljer du Distribuera till Azure för att distribuera lösningen till din prenumeration. Ange parametervärdena i Azure Portal.
Gör följande på sidan Anpassad distribution :
För Resursgrupp väljer du en befintlig resursgrupp eller skapar en resursgrupp.
För Webbplatsnamn anger du ett namn för webbappen.
Som Värdplansnamn anger du ett namn för App Service-planen som ska användas som värd för webbappen.
Välj Granska + skapa.
På sidan Granska + skapa väljer du Skapa.
Det kan ta några minuter att slutföra distributionen. Välj Aviseringar (klockikon) i portalen och välj sedan Gå till resursgrupp.
På sidan Resursgrupp går du till listan över resurser och väljer den webbapp (contosoegriviewer i följande exempel) som du skapade.
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
.Bekräfta att du ser webbplatsen men att inga händelser har publicerats än.
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.
På sidan Event Grid-ämne för ditt anpassade ämne väljer du + Händelseprenumeration i verktygsfältet.
Följ dessa steg på sidan Skapa händelseprenumeration :
Ange ett namn för händelseprenumerationen.
Välj Web Hook som slutpunktstyp.
Välj Välj en slutpunkt.
För webhookens slutpunkt anger du webbappens webbadress och lägger till
api/updates
till startsidans webbadress. Välj Bekräfta val.På sidan Skapa händelseprenumeration väljer du Skapa.
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 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
I Azure-portalen väljer du Cloud Shell. Cloud Shell öppnas i den nedre rutan i webbläsaren.
Välj Bash i det övre vänstra hörnet i Cloud Shell-fönstret.
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)
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 i Event Grid-ämnet. Om du vill hämta den här nyckeln från Azure-portalen växlar du till fliken Åtkomstnycklar på sidan 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)
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"} ]'
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.
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.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.
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>"
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
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)+"]"
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.
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.
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.
Välj resursgruppen för att starta sidan Resursgrupp .
Välj Ta bort resursgrupp i verktygsfältet.
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:
- Om Event Grid
- Dirigera Blob Storage-händelser till en anpassad webbslutpunkt
- Övervaka ändringar på virtuella maskiner med Azure Event Grid och Logic Apps
- Strömma stordata till ett datalager
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.