Snabbstart: Dirigera anpassade händelser till en Azure-funktion med hjälp av Event Grid
Azure Event Grid är en händelsedirigeringstjänst för molnet. Azure Functions är en av de händelsehanterare som stöds.
I den här snabbstarten 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 en funktion med en Event Grid-utlösare med hjälp av Visual Studio Code
I det här avsnittet använder du Visual Studio Code för att skapa en funktion med en Event Grid-utlösare.
Förutsättningar
- Visual Studio Code installerat på en av de plattformar som stöds
- Azure Functions-tillägg
Skapa en funktion
Öppna Visual Studio Code.
Välj Azure i det vänstra fältet.
I den vänstra rutan i avsnittet ARBETSYTA väljer du knappen Azure Functions i kommandofältet och väljer sedan Skapa funktion.
Välj en mapp där du vill spara funktionskoden.
För kommandot Skapa nytt projekt väljer du C# för Språk och väljer sedan returnyckeln.
För .NET-körning väljer du .NET 8.0 Isolerad LTS och väljer sedan returnyckeln.
Som Mall för funktionen väljer du Azure Event Grid-utlösare och väljer sedan returnyckeln.
För Funktionsnamn anger du ett namn för funktionen och väljer sedan returnyckeln.
För Namnområde anger du ett namn för funktionens namnområde och väljer sedan returnyckeln.
Öppna projektet i det aktuella fönstret eller ett nytt fönster eller lägg till det i en arbetsyta.
Vänta tills funktionen har skapats. Status för funktionens skapande visas i det nedre högra hörnet.
Visa koden i filen YourFunctionName.cs , särskilt
Run
metoden. Den skriver ut informationen med hjälp av en logger.[Function(nameof(MyEventGridTriggerFunc))] public void Run([EventGridTrigger] CloudEvent cloudEvent) { _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject); }
Distribuera funktionen till Azure
Välj Azure-knappen i det vänstra fältet om Azure-fönstret inte redan är öppet.
Hovra över projektet och välj knappen Distribuera till Azure .
I listrutan på kommandopaletten väljer du + Skapa ny funktionsapp och väljer sedan returnyckeln.
Som Namn anger du ett globalt unikt namn för den nya funktionsappen och väljer sedan returnyckeln.
För Körningsstack väljer du .NET 8 Isolerad.
För Plats för dina Azure-resurser väljer du en region som är nära dig.
Status för skapande av funktionsapp visas på fliken AZURE i det nedre fönstret. När funktionsappen har skapats visas statusen för distributionen av funktionen som du skapade lokalt till funktionsappen.
När distributionen har slutförts expanderar du meddelandet Skapa funktionsapp lyckades och väljer Klicka för att visa resursen. Bekräfta att funktionen är markerad i avsnittet RESURSER i den vänstra rutan.
Högerklicka på din funktion och välj sedan Öppna i portalen.
Logga in på Azure om det behövs och bekräfta att sidan Funktionsapp visas för din funktion.
Välj din funktion i den nedre rutan.
Växla till fliken Loggar . Håll den här fliken öppen så att du kan se loggade meddelanden när du skickar en händelse till ett Event Grid-ämne senare i den här självstudien.
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 sedan Event Grid-ämnen.
På sidan Ämnen väljer du + Skapa i kommandofältet.
Följ dessa steg i fönstret Skapa ämne :
För Prenumeration väljer du din Azure-prenumeration.
För Resursgrupp väljer du samma resursgrupp i föregående steg.
Som Namn anger du ett unikt namn för det anpassade ämnet. Ämnesnamnet måste vara unikt eftersom en DNS-post (Domain Name System) representerar det.
Använd inte namnet som visas i exempelbilden. Skapa ett eget namn istället. Det måste vara 3–50 tecken och innehålla endast värdena a-z, A-Z, 0-9 och ett bindestreck (
-
).För Region väljer du en plats för event grid-ämnet.
Välj Granska + skapa.
På fliken Granska + skapa granskar du inställningarna och väljer sedan Skapa.
När det anpassade ämnet har skapats väljer du länken Gå till resurs för att öppna sidan Event Grid-ämne för det ämnet.
Prenumerera på ett 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 i fönstret Skapa händelseprenumeration :
Som Namn anger du ett namn för händelseprenumerationen.
För Händelseschema väljer du Molnhändelseschema v1.0.
För Slutpunktstyp väljer du Azure-funktion.
Välj Konfigurera en slutpunkt.
Följ dessa steg i fönstret Välj Azure-funktion :
För Prenumeration väljer du den Azure-prenumeration som har funktionen.
För Resursgrupp väljer du den resursgrupp som har funktionen.
För Funktionsapp väljer du din funktionsapp.
För Funktion väljer du funktionen i funktionsappen.
Välj Bekräfta val.
Det här steget är valfritt, men vi rekommenderar det för produktionsscenarier. I fönstret Skapa händelseprenumeration går du till fliken Ytterligare funktioner och anger värden för Maxhä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 i kilobyte anger den önskade övre gränsen för batchstorlek, men den kan överskridas om en enskild händelse är större än det här tröskelvärdet.
I fönstret Skapa händelseprenumeration väljer du Skapa.
Skicka en händelse till ditt ämne
Utlös nu en händelse för att se hur Event Grid distribuerar meddelandet till slutpunkten. Använd antingen Azure CLI eller Azure PowerShell för att skicka en testhändelse till ditt anpassade ämne. Vanligtvis skickar ett program eller en Azure-tjänst händelsedata.
I det första exemplet används Azure CLI. Den hämtar URL:en och nyckeln för det anpassade ämnet och exempelhändelsedata. Använd ditt anpassade ämnesnamn för topicname
. 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-verktyget skickar HTTP-begäranden. I den här artikeln använder du cURL för att skicka händelsen till det anpassade ämnet.
Azure CLI
I Azure-portalen väljer du Cloud Shell. Om du är i Azure PowerShell-läge väljer du Växla till Bash.
Ange variablerna
topicname
ochresourcegroupname
som används 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"
Använd 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 det.
endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --query "endpoint" --output tsv)
Använd 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 det.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)
Kopiera följande instruktion med händelsedefinitionen och välj sedan returnyckeln.
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
Bekräfta att meddelandet från funktionen visas på fliken Loggar för funktionen i Azure-portalen.
Azure PowerShell
I det andra exemplet används Azure PowerShell för att utföra liknande steg.
I Azure-portalen väljer du Cloud Shell (eller går till Azure Cloud Shell-sidan). I det övre vänstra hörnet i Cloud Shell-fönstret väljer du Växla till PowerShell.
Ange följande variabler. När du har kopierat och klistrat in varje kommando uppdaterar du ämnesnamnet och resursgruppens namn innan du kör det.
$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 dessa instruktioner i Cloud Shell-fönstret:
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct the body by using a hash table $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert the event body from a hash table to a JSON object #Append square brackets to the converted JSON payload because they're 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}
Bekräfta att meddelandet från funktionen visas på fliken Loggar för funktionen i Azure-portalen.
Kontrollera att funktionen tog emot händelsen
Du utlöste händelsen och Event Grid skickade meddelandet till slutpunkten som du konfigurerade när du prenumererade. Nu kan du kontrollera om funktionen tog emot den.
På sidan Övervaka för din funktion hittar du ett anrop.
Välj anropet för att visa 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 resurserna som du skapade i den här artikeln. Annars tar du bort de resurser som du skapade i den här artikeln.
På den vänstra menyn väljer du Resursgrupper.
Ett alternativ är att välja Alla tjänster på den vänstra menyn och sedan välja Resursgrupper.
Välj resursgruppen för att öppna fönstret för dess information.
Välj Ta bort resursgrupp i verktygsfältet.
Bekräfta borttagningen genom att ange namnet på resursgruppen och välj sedan Ta bort.
Cloud Shell-fönstret skapade och använde den andra resursgruppen som visas på sidan Resursgrupper . Ta bort den här resursgruppen om du inte planerar att använda Cloud Shell-fönstret senare.
Relaterat innehåll
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 Azure 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
Mer information om hur du publicerar händelser till och använder händelser från Event Grid med hjälp av olika programmeringsspråk finns i följande exempel: