Snabbstart: Dirigera anpassade händelser till en Azure-funktion med Event Grid
Azure Event Grid är en händelsetjänst för molnet. Azure Functions är en av de händelsehanterare som stöds. I den här artikeln använder du Azure-portalen för att skapa ett anpassat ämne, prenumerera på det anpassade ämnet och utlösa händelsen för att visa resultatet. Du skickar händelserna till en Azure-funktion.
Om du inte har en Azure-prenumerationkan du skapa ett kostnads fritt konto innan du börjar.
Skapa Azure-funktion
Innan du prenumererar på det anpassade ämnet skapar du en funktion för att hantera händelserna.
Skapa en funktionsapp med hjälp av instruktioner från Skapa en funktionsapp.
På sidan Funktionsapp väljer du Funktioner på den vänstra menyn.
Välj +Skapa i verktygsfältet för att skapa en funktion.
På sidan Skapa funktion följer du dessa steg:
Använd sidan Kod + test för att se den befintliga koden för funktionen och uppdatera den.
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:
- Välj prenumerationer på den vänstra menyn.
- Välj den prenumeration som du använder för Event Grid.
- Välj resurs leverantörer på den vänstra menyn under Inställningar.
- Hitta Microsoft.EventGrid.
- 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.
Logga in på Azure-portalen.
Välj Alla tjänster på den vänstra navigeringsmenyn, sök efter Event Grid och välj Event Grid Avsnitt.
På sidan Event Grid avsnitt väljer du + Lägg till i verktygsfältet.
Följ dessa steg på sidan Skapa ämne:
Välj din Azure-prenumeration.
Välj samma resursgrupp från föregående steg.
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.
På sidan Granska + skapa granskar du inställningarna och väljer Skapa.
När det anpassade ämnet har skapats väljer du Gå till resurslänk för att se Event Grid sidan Ämne för det ämne som du skapade.
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.
På sidan Event Grid för ditt anpassade ämne väljer du + Händelseprenumeration i verktygsfältet.
På sidan Skapa händelseprenumeration följer du dessa steg:
Ange ett namn för händelseprenumerationen.
Välj Azure Function som Slutpunktstyp.
Välj Välj en slutpunkt.
För funktionsslutpunkten väljer du den Azure-prenumeration och resursgrupp som funktionsappen finns i och väljer sedan den funktionsapp och funktion som du skapade tidigare. Välj Bekräfta val.
Det här steget är valfritt, men rekommenderas för produktionsscenarier. På sidan Skapa händelseprenumeration växlar du till fliken Avancerade funktioner och anger värden för Maximalt antal händelser per batch och Önskad batchstorlek i kilobyte.
Batchbearbetning kan ge dig högt dataflöde. För Maximalt antal händelser per batch anger du det maximala antalet händelser som en prenumeration ska innehålla i en batch. Önskad batchstorlek anger den önskade övre gränsen för batchstorleken i kilobyte, men kan överskridas om en enskild händelse är större än det här tröskelvärdet.
På sidan Skapa händelseprenumeration väljer du Skapa.
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 Portal väljer du Cloud Shell. Välj Bash i det övre vänstra hörnet 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.
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.
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:
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 Portal väljer du Cloud Shell (du kan också gå till
https://shell.azure.com/). Välj PowerShell i det övre vänstra hörnet Cloud Shell fönstret. Se exempelfönstret Cloud Shell 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:
$resourceGroupName = <resource group name> $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 $topicNameFö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)+"]"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 att funktionen tog emot händelsen
Du har utlöst händelsen och Event Grid skickade meddelandet till den slutpunkt som du konfigurerade när du prenumererade. Gå till den Event Grid utlösta funktionen och öppna loggarna. Du bör se en kopia av datanyttolasten för händelsen i loggarna. Om du inte är säker på att du öppnar loggfönstret först eller trycker på Återanslut och sedan försöker skicka en testhändelse igen.
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 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 ä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
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.