Skicka händelser från API Management till Event Grid
GÄLLER FÖR: Alla API Management-nivåer
API Management integreras med Azure Event Grid så att du kan skicka händelsemeddelanden till andra tjänster och utlösa underordnade processer. Event Grid är en fullständigt hanterad händelseroutningstjänst som använder en publiceringsprenumereringsmodell. Event Grid har inbyggt stöd för Azure-tjänster som Azure Functions och Azure Logic Apps, och du kan skicka händelseaviseringar till tjänster utanför Azure med hjälp av webhooks.
Om du till exempel använder integrering med Event Grid kan du skapa ett program som uppdaterar en databas, skapar ett faktureringskonto och skickar ett e-postmeddelande varje gång en användare läggs till i DIN API Management-instans.
I den här artikeln prenumererar du på Event Grid-händelser i din API Management-instans, utlöser händelser och skickar händelserna till en slutpunkt som bearbetar data. För att hålla det enkelt skickar du händelser till en exempelwebbapp som samlar in och visar meddelandena:
Förutsättningar
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Snabbstart för Bash i Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt installerar du Azure CLI. Om du kör i Windows eller macOS kan du köra Azure CLI i en Docker-container. Mer information finns i Så här kör du Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. Slutför autentiseringsprocessen genom att följa stegen som visas i terminalen. Andra inloggningsalternativ finns i Logga in med Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda tillägg med Azure CLI.
Kör az version om du vill hitta versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
- Om du inte redan har en API Management-tjänst slutför du följande snabbstart: Skapa en Azure API Management-instans
- Aktivera en systemtilldelad hanterad identitet i din API Management-instans.
- Skapa en resursgrupp om du inte har någon som du vill distribuera exempelslutpunkten i.
Skapa en händelseslutpunkt
I det här avsnittet använder du en Resource Manager-mall för att distribuera ett fördefinierad exempelwebbprogram till Azure App Service. Senare prenumererar du på API Management-instansens Event Grid-händelser och anger den här appen som den slutpunkt som händelserna skickas till.
Om du vill distribuera exempelappen kan du använda Azure CLI, Azure PowerShell eller Azure-portalen. I följande exempel används kommandot az deployment group create i Azure CLI.
Ange
RESOURCE_GROUP_NAME
namnet på en befintlig resursgruppAnge
SITE_NAME
ett unikt namn för webbappenWebbplatsnamnet måste vara unikt i Azure eftersom det ingår i webbappens fullständigt kvalificerade domännamn (FQDN). I ett senare avsnitt navigerar du till appens FQDN i en webbläsare för att visa händelserna.
RESOURCE_GROUP_NAME=<your-resource-group-name>
SITE_NAME=<your-site-name>
az deployment group create \
--resource-group $RESOURCE_GROUP_NAME \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
--parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan
När distributionen har slutförts (det kan ta några minuter) öppnar du en webbläsare och går till webbappen för att kontrollera att den körs:
https://<your-site-name>.azurewebsites.net
Du bör se exempelappen renderad utan att några händelsemeddelanden visas.
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.
Prenumerera på API Management-händelser
I Event Grid prenumererar du på ett ämne för att berätta vilka händelser du vill spåra och var de ska skickas. Här skapar du en prenumeration på händelser i DIN API Management-instans.
Välj Händelser > + händelseprenumeration.
På fliken Grundläggande :
- Ange ett beskrivande namn för händelseprenumerationen.
- I Händelsetyper väljer du en eller flera API Management-händelsetyper som ska skickas till Event Grid. I exemplet i den här artikeln väljer du minst Microsoft.APIManagement.ProductCreated
- I Slutpunktsinformation väljer du händelsetypen Web Hook , klickar på Välj en slutpunkt och anger webbadressen till webbappen följt av
api/updates
. Exempel:https://myapp.azurewebsites.net/api/updates
. - Välj Bekräfta markering.
Låt inställningarna vara kvar på de återstående flikarna med standardvärdena och välj sedan Skapa.
Utlösa och visa händelser
Nu när exempelappen är igång och du har prenumererat på din API Management-instans med Event Grid är du redo att generera händelser.
Skapa till exempel en produkt i din API Management-instans. Om händelseprenumerationen innehåller händelsen Microsoft.APIManagement.ProductCreated utlöser skapandet av produkten en händelse som skickas till webbappens slutpunkt.
Gå till webbappen ProductCreated
för Event Grid Viewer så bör du se händelsen. Välj knappen bredvid händelsen för att visa informationen.
Event Grid-händelseschema
API Management-händelsedata innehåller resourceUri
, som identifierar API Management-resursen som utlöste händelsen. Mer information om API Management-händelsemeddelandeschemat finns i Event Grid-dokumentationen:
Azure Event Grid-händelseschema för API Management
Nästa steg
- Läs mer om att prenumerera på händelser.