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-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Skapa Azure-funktionsapp
Logga in på Azure-portalen.
På den vänstra navigeringsmenyn väljer du Alla tjänster.
Välj Beräkning i listan över kategorier.
Hovra (markera inte) musen över funktionsappen och välj +.
Följ dessa steg på sidan Grundläggande i guiden Skapa funktionsapp:
Välj din Azure-prenumeration där du vill skapa funktionsappen.
Skapa en ny resursgrupp eller välj en befintlig resursgrupp.
Ange ett namn för funktionsappen.
Välj .NET för Runtime-stack.
För Version väljer du 6 (LTS), processmodell.
Välj den region som är närmast dig.
Välj Nästa: Lagring längst ned på sidan.
På sidan Lagring skapar du ett nytt lagringskonto eller väljer ett befintligt lagringskonto som ska associeras med funktionsappen och väljer sedan Granska + skapa längst ned på sidan.
På sidan Granska + skapa granskar du inställningarna och väljer Skapa längst ned på sidan för att skapa funktionsappen.
När distributionen är klar väljer du Gå till resurs för att navigera till funktionsappens startsida.
Skapa en funktion
Innan du prenumererar på det anpassade ämnet skapar du en funktion för att hantera händelserna.
På sidan Funktionsapp går du till avsnittet Skapa i Azure-portalen och väljer Länken Skapa funktion i den högra rutan.
Följ dessa steg på sidan Skapa funktion :
På sidan Funktion för HandleEventsFunc väljer du Kod + Test på den vänstra navigeringsmenyn, ersätter koden med följande kod och väljer sedan Spara i kommandofältet.
#r "Azure.Messaging.EventGrid" #r "System.Memory.Data" using Azure.Messaging.EventGrid; using System; public static void Run(EventGridEvent eventGridEvent, ILogger log) { log.LogInformation(eventGridEvent.Data.ToString()); }
Välj Övervaka på den vänstra menyn och växla till fliken Loggar . Behåll det här fönstret eller fliken i webbläsaren öppen så att du kan se den mottagna händelseinformationen.
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 på en ny flik i webbläsarfönstret.
I sökfältet i ämnet söker du efter Event Grid-ämnen och väljer Event Grid-ämnen.
På sidan Event Grid-ämnen väljer du + Skapa i kommandofältet.
Följ dessa steg på sidan Skapa ämne :
Välj din Azure-prenumeration.
Välj samma resursgrupp i 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 följande Event Grid-ämnessida för det ämne som du skapade.
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 Azure-funktion som slutpunktstyp.
Välj Konfigurera en slutpunkt.
För funktionsslutpunkten väljer du den Azure-prenumeration och resursgrupp som funktionsappen finns i och väljer sedan funktionsappen och funktionen 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 Max-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 maximalt antal händelser som en prenumeration ska inkludera i en batch. Önskad batchstorlek anger den önskade övre gränsen för batchstorlek 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-portalen väljer du Cloud Shell. Välj Bash i det övre vänstra hörnet i Cloud Shell-fönstret.
Ange variablerna
topicname
ochresourcegroupname
som ska användas i kommandona.Ersätt
TOPICNAME
med namnet på event grid-ämnet.topicname="TOPICNAME"
Ersätt
RESOURCEGROUPNAME
med namnet på den Azure-resursgrupp som innehåller Event Grid-ämnet.resourcegroupname="RESOURCEGROUPNAME"
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 $topicname -g $resourcegroupname --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 ämnesnamnetoch resursgruppens namn innan du kör kommandot.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --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-portalen väljer du Cloud Shell (du kan också gå till
https://shell.azure.com/
). Välj 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:
$resourceGroupName = "RESOURCEGROUPNAME"
$topicName = "TOPICNAME"
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}
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.
På sidan Övervaka för din Azure-funktion visas ett anrop.
Välj anropet för att se informationen.
Du kan också använda fliken Loggar i den högra rutan för att se de loggade meddelandena när du publicerar händelser till ämnets slutpunkt.
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 ä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.