Senden von Ereignissen von API Management an Event Grid
GILT FÜR: Alle API Management-Ebenen
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.
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
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
- Arbeiten Sie die folgende Schnellstartanleitung durch, falls Sie nicht bereits über einen API Management-Dienst verfügen: Erstellen einer Azure API Management-Instanz.
- Aktivieren Sie eine systemseitig zugewiesene verwaltete Identität in Ihrer API Management-Instanz.
- Erstellen Sie eine Ressourcengruppe, wenn Sie über keine verfügen, in der der Beispielendpunkt bereitgestellt werden soll.
Erstellen eines Ereignisendpunkts
In diesem Abschnitt wird beschrieben, wie Sie mit einer Resource Manager-Vorlage eine vorab erstellte Beispielwebanwendung in Azure App Service bereitstellen. In einem anderen Abschnitt wird erläutert, wie Sie die Event Grid-Ereignisse Ihrer API Management-Instanz abonnieren und die App als den Endpunkt festlegen, an den 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 Event Grid nicht bereits zuvor genutzt haben, müssen Sie den Event Grid-Ressourcenanbieter registrieren. Wenn Sie Event Grid bereits eingesetzt haben, fahren Sie mit dem nächsten Abschnitt fort.
Führen Sie im Azure-Portal folgende Schritte aus:
Wählen Sie im linken Menü Abonnements aus.
Wählen Sie das Abonnement, das Sie für Event Grid verwenden möchten, aus der Abonnementliste aus.
Wählen Sie auf der Seite Abonnement unter Einstellungen im linken Menü Ressourcenanbieter aus.
Suchen Sie nach Microsoft.EventGrid, und vergewissern Sie sich, dass der Status Nicht registriert lautet.
Wählen Sie microsoft.EventGrid in der Anbieterliste aus.
Wählen Sie Registrieren auf der Befehlsleiste aus.
Aktualisieren Sie, um sicherzustellen, dass der Status von Microsoft.EventGrid in Registriert geändert wird.
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.
Navigieren Sie im Azure-Portal zu Ihrer API Management-Instanz.
Wählen Sie Ereignisse > + Ereignisabonnement aus.
Auf der Registerkarte Basic:
- 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.
Übernehmen Sie die Einstellungen auf den verbleibenden Registerkarten mit ihren Standardwerten, und wähle dann Erstellen aus.
Auslösen und Anzeigen von Ereignissen
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.
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
Nächste Schritte
- Weitere Informationen zum Abonnieren von Ereignissen.