Leverera händelser till webhooks med hjälp av namnområdesämnen – Azure-portalen (förhandsversion)
Artikeln innehåller stegvisa instruktioner för att publicera händelser till Azure Event Grid i CloudEvents JSON-format och leverera dessa händelser med hjälp av push-leveransmodellen. För att vara specifik publicerar du händelser till ett namnområdesavsnitt i Event Grid och push-överför dessa händelser från en händelseprenumeration till ett webhookhanterarmål. Mer information om push-leveransmodellen finns i Översikt över push-leverans.
Kommentar
Azure Event Grid-namnområden har för närvarande stöd för SAS-token (Signaturer för delad åtkomst) och autentisering av åtkomstnycklar.
Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.
Skapa ett Event Grid-namnområde
Ett Event Grid-namnområde innehåller en användardefinierad slutpunkt som du publicerar dina händelser till. I följande exempel skapas ett namnområde i resursgruppen med bash i Azure Cloud Shell. Namnområdesnamnet måste vara unikt eftersom det ingår i en DNS-post (Domain Name System).
Navigera till Azure-portalen.
I sökfältet i ämnet skriver du
Event Grid Namespaces
och väljerEvent Grid Namespaces
från resultaten.På sidan Event Grid-namnområden väljer du + Skapa i kommandofältet.
Följ dessa steg på sidan Skapa namnområde :
På sidan Distribution väljer du Gå till resurs efter distributionen.
Hämta åtkomstnyckeln
- På sidan Event Grid-namnområde väljer du Åtkomstnycklar på den vänstra menyn.
- Välj knappen Kopiera bredvid åtkomstnyckeln.
- Spara åtkomstnyckeln någonstans. Du använder den senare i den här snabbstarten.
Skapa ett ämne i namnområdet
Skapa ett ämne som innehåller alla händelser som publicerats till namnområdesslutpunkten.
- Välj Ämnen på den vänstra menyn.
- På sidan Ämnen väljer du + Ämne i kommandofältet.
- Följ dessa steg på sidan Skapa ämne :
Skapa en slutpunkt för meddelanden
Innan vi prenumererar på händelserna ska vi skapa slutpunkten 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.
Välj Deploy to Azure (Distribuera till Azure) för att distribuera lösningen till din prenumeration.
Gör följande på sidan Anpassad distribution :
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.
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.
Distributionen tar några minuter att slutföra. På sidan Distribution väljer du Gå till resursgrupp.
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.
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.
Viktigt!
Håll Fönstret Azure Event Grid Viewer öppet så att du kan se händelser när de publiceras.
Skapa en händelseprenumeration
Skapa en händelseprenumeration som anger leveransläget till Push, som stöder push-leverans.
- Växla till fliken eller fönstret med sidan Event Grid-namnområde öppen från fliken eller fönstret med sidan Event Hubs-namnområde öppen.
- På sidan Event Grid-namnområde väljer du Ämnen på den vänstra menyn.
- På sidan Ämnen väljer du det ämne som du skapade i föregående steg.
- Välj + Prenumeration i kommandofältet.
- Följ dessa steg på sidan Skapa händelseprenumeration :
På fliken Grundläggande anger du ett namn för händelseprenumerationen.
Välj Push för händelseleveransläget.
För Slutpunktstyp väljer du Web Hook.
Välj Konfigurera en slutpunkt.
På sidan Web Hook anger du slutpunkten (till exempel:
https://spegridsite0520.azurewebsites.net/api/updates
) som du ser i följande exempel och väljer Bekräfta markeringen.På sidan Skapa prenumeration väljer du Skapa.
Skicka händelser till ditt ämne
Skicka nu en exempelhändelse till namnområdesavsnittet genom att följa stegen i det här avsnittet.
Deklarera variabler
Starta Cloud Shell i Azure-portalen. Växla till Bash.
Kör följande kommando för att deklarera en variabel som innehåller resursgruppens namn. Ersätt
RESOUREGROUPNAME
med namnet på din Azure-resursgrupp.resource_group=RESOURCEGROUPNAME
Kör följande kommando i Cloud Shell för att deklarera en variabel som innehåller namnområdesnamnet. Ersätt
NAMESPACENAME
med namnet på Event Grid-namnområdet.namespace=NAMESPACENAME
Kör följande kommando för att deklarera en variabel för att lagra det värde för åtkomstnyckeln som du antecknade tidigare. Ersätt
ACCESSKEY
med värdet för åtkomstnyckeln till Event Grid-namnområdet.key=ACCESSKEY
Kör följande kommando i Cloud Shell för att deklarera en variabel som innehåller namnområdesnamnet.
topic=TOPICNAME
Publicera en händelse
Hämta värdnamnet för namnområdet. Du använder den för att skriva namnområdets HTTP-slutpunkt till vilken händelser skickas. Följande åtgärder var först tillgängliga med API-versionen
2023-06-01-preview
. Du kan också hämta värdnamnet från sidan Översikt i Event Grid-namnområdet i Azure-portalen.publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-preview
Skapa en CloudEvents-exempelkompatibel händelse:
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} '
Elementet
data
är nyttolasten för din händelse. All välformulerad JSON kan stå i det här fältet. Mer information om egenskaper (även kallade kontextattribut) som kan användas i en händelse finns i CloudEvents-specifikationerna .Använd CURL för att skicka händelsen till ämnet. CURL är ett verktyg som skickar HTTP-förfrågningar.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Kontrollera att Azure Event Grid Viewer tog emot händelsen
Kontrollera att Azure Event Grid Viewer-webbappen visar de händelser som den tog emot från Event Grid.
Relaterat innehåll
I den här snabbstarten använde du en webhook som händelsehanterare. Snabbstart som använder en Azure-händelsehubb som händelsehanterare finns i Avsnittet om att leverera händelser till Azure Event Hubs med hjälp av namnområdesavsnitt.