Dela via


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:

API Management-händelser i Loggboken för Event Grid

Förutsättningar

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 resursgrupp

  • Ange SITE_NAME ett unikt namn för webbappen

    Webbplatsnamnet 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:

  1. Välj Prenumerationer på den vänstra menyn.

  2. Välj den prenumeration som du vill använda för Event Grid i prenumerationslistan.

  3. På sidan Prenumeration väljer du Resursprovidrar under Inställningar på den vänstra menyn.

  4. Sök efter Microsoft.EventGrid och bekräfta att statusen inte är registrerad.

  5. Välj Microsoft.EventGrid i providerlistan.

  6. Välj Registrera i kommandofältet.

    Bild som visar registreringen av Microsoft.EventGrid-providern med Azure-prenumerationen.

  7. Uppdatera för att kontrollera att statusen för Microsoft.EventGrid har ändrats till Registrerad.

    Bild som visar lyckad registrering av Microsoft.EventGrid-providern med Azure-prenumerationen.

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.

  1. I Azure-portalen går du till din API Management-instans.

  2. Välj Händelser > + händelseprenumeration.

  3. 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.
  4. Låt inställningarna vara kvar på de återstående flikarna med standardvärdena och välj sedan Skapa.

    Skapa en händelseprenumeration i Azure-portalen

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.

Produktskapade händelser i Loggboken i Event Grid

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