Senden von Ereignissen von API Management an Event Grid

GILT FÜR: Consumption | Developer | Basic | Standard | Premium

API Management integriert sich in Azure Event Grid, sodass Sie Ereignisbenachrichtigungen an andere Dienste senden und nachfolgende Prozesse auslösen können. Event Grid ist ein vollständig verwalteter Ereignisroutingdienst, der ein Veröffentlichen-Abonnieren-Modell verwendet. Event Grid verfügt über integrierte Unterstützung für Azure-Dienste wie Azure Functions und Azure Logic Apps und kann mithilfe von Webhooks Ereigniswarnungen an Nicht-Azure-Dienste übermitteln.

Sie können die folgenden Arten von API-Verwaltungsereignissen abonnieren:

  • Steuerungsebenenereignisse: Diese Ereignisse werden generiert, wenn Sie bestimmte API-Verwaltungsressourcen erstellen, aktualisieren oder löschen. Sie können z. B. ein Ereignis empfangen, wenn ein neuer Benutzer oder ein neues Produkt in Ihrer API-Verwaltungsinstanz erstellt wird.
  • Datenebenenereignisse (Vorschau): Diese Ereignisse werden während des Betriebs des API-Verwaltungsgateways generiert. Derzeit kann die API-Verwaltung Ereignisse für Back-End-Schaltkreistrennungen und für den Lebenszyklus von selbst gehosteten Gatewayzugriffstoken generieren.

Eine vollständige Liste der verfügbaren Ereignisse finden Sie im Ereignisrasterschema für die API-Verwaltung.

Diagramm der API-Verwaltungsintegration in Event Grid.

Wenn Sie beispielsweise die Integration in Event Grid verwenden, können Sie eine Anwendung erstellen, die eine Datenbank aktualisiert, ein Abrechnungskonto erstellt und jedes Mal eine E-Mail-Benachrichtigung sendet, wenn ein Benutzer ihrer API Management-Instanz hinzugefügt wird.

In diesem Artikel abonnieren Sie Event Grid-Ereignisse in Ihrer API Management-Instanz, lösen Ereignisse aus und senden die Ereignisse an einen Endpunkt, der die Daten verarbeitet. Zur Vereinfachung senden Sie Ereignisse an eine Beispiel-Web-App, die die Nachrichten sammelt und anzeigt:

Voraussetzungen

Erstellen eines Ereignisendpunkts

In diesem Abschnitt wird beschrieben, wie Sie mit einer Resource Manager-Vorlage eine vorab erstellte Beispielwebanwendung in Azure App Service bereitstellen. Später abonnieren Sie die Event Grid-Ereignisse Ihrer API Management-Instanz und geben diese App als Endpunkt an, an den die Ereignisse gesendet werden.

Um die Beispiel-App bereitzustellen, können Sie die Azure CLI, Azure PowerShell oder das Azure-Portal verwenden. Im folgenden Beispiel wird der Befehl az deployment group create in der Azure CLI verwendet.

  • Legen Sie RESOURCE_GROUP_NAME auf den Namen einer vorhandenen Ressourcengruppe fest.

  • Legen Sie SITE_NAME auf einen eindeutigen Namen für Ihre Web-App fest.

    Der Websitename muss innerhalb von Azure eindeutig sein, da er Bestandteil des vollqualifizierten Domänennamens (FQDN) der Web-App ist. In einem Abschnitt weiter unten navigieren Sie in einem Webbrowser zum FQDN der App und lassen sich dort die Ereignisse anzeigen.

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

Öffnen Sie nach der erfolgreichen Bereitstellung (dieser Vorgang kann einige Minuten dauern) einen Browser, und navigieren Sie zu Ihrer Web-App, um sicherzustellen, dass diese ausgeführt wird:

https://<your-site-name>.azurewebsites.net

Die Beispiel-App sollte nun gerendert werden, und es sollten keine Ereignismeldungen angezeigt werden.

Registrieren des Event Grid-Ressourcenanbieters

Sofern Sie das Ereignisraster nicht zuvor verwendet haben, müssen Sie den Ereignisraster-Ressourcenanbieter registrieren. Wenn Sie zuvor das Ereignisraster verwendet haben, fahren Sie mit dem nächsten Abschnitt fort.

Gehen Sie im Azure-Portal wie folgt vor:

  1. Wählen Sie im linken Menü Abonnements aus.

  2. Wählen Sie das Abonnement aus der Abonnementliste aus, das Sie für das Ereignisraster verwenden möchten.

  3. Wählen Sie auf der Seite "Abonnement" unter "Einstellungen" im linken Menü "Ressourcenanbieter" die Option "Ressourcenanbieter" aus.

  4. Suchen Sie nach Microsoft. EventGrid, und bestätigen Sie, dass der Statusnicht registriert ist.

  5. Wählen Sie microsoft.EventGrid in der Anbieterliste aus.

  6. Wählen Sie auf der Befehlsleiste " Registrieren" aus.

    Screenshot, der die Registrierung des Providers Microsoft.EventGrid bei einem Azure-Abonnement zeigt.

  7. Aktualisieren Sie, um sicherzustellen, dass der Status von Microsoft. EventGrid wurde in Registered geändert.

    Screenshot der erfolgreichen Registrierung des Microsoft. EventGrid-Anbieter mit einem Azure-Abonnement.

Abonnieren von API Management-Ereignissen

In Event Grid abonnieren Sie ein Thema, um festzulegen, welche Ereignisse Sie nachverfolgen möchten und wohin diese gesendet werden sollen. Hier erstellen Sie ein Abonnement von Ereignissen in Ihrer API Management-Instanz.

  1. Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.

  2. Wählen Sie Ereignisse > + Ereignisabonnement aus.

  3. Auf der Registerkarte Grundlegend:

    • Geben Sie einen aussagekräftigen Namen für das Ereignisabonnement ein.
    • Wählen Sie unter Ereignistypen einen oder mehrere API Management-Ereignistypen aus, die an Event Grid gesendet werden sollen. Wählen Sie für das Beispiel in diesem Artikel mindestens Microsoft.APIManagement.ProductCreated aus.
    • Wählen Sie unter Endpunktdetails den Ereignistyp Webhook aus, klicken Sie auf Endpunkt auswählen, und geben Sie Ihre Web-App-URL, gefolgt von api/updates, ein. Beispiel: https://myapp.azurewebsites.net/api/updates.
    • Wählen Sie Auswahl bestätigen aus.
  4. Belassen Sie die Einstellungen in den verbleibenden Registerkarten auf ihren Standardwerten, und wählen Sie dann Erstellen aus.

    Erstellen eines Ereignisabonnements im Azure-Portal

Ereignisse auslösen und anzeigen

Da die Beispiel-App nun funktioniert und ausgeführt wird und Sie Ihre API Management-Instanz mit Event Grid abonniert haben, können Sie nun Ereignisse generieren.

Beispielsweise erstellen Sie ein Produkt in Ihrer API Management-Instanz. Wenn Ihr Ereignisabonnement das Ereignis Microsoft.APIManagement.ProductCreated umfasst, löst das Erstellen des Produkts ein Ereignis aus, das an Ihren Web-App-Endpunkt gepusht wird.

Navigieren Sie zu Ihrer Event Grid Viewer-Web-App, wo das ProductCreated-Ereignis angezeigt werden sollte. Wählen Sie die Schaltfläche neben dem Ereignis aus, um die Details anzuzeigen.

Ereignis „Produkt erstellt“ im Event Grid Viewer

Event Grid-Ereignisschema

API Management-Ereignisdaten umfassen den resourceUri, der die API Management-Ressource identifiziert, die das Ereignis ausgelöst hat. Ausführliche Informationen zum API Management-Ereignismeldungsschema finden Sie in der Event Grid Dokumentation:

Azure Event Grid-Ereignisschema für API Management