Übermitteln von Ereignissen an Webhooks mithilfe von Namespacethemen: Azure-Portal (Vorschau)
Dieser Artikel enthält eine Schritt-für-Schritt-Anleitung zur Veröffentlichung von Ereignissen in Azure Event Grid im CloudEvents-JSON-Format und zum Zustellen dieser Ereignisse unter Verwendung des Pushübermittlungsmodells. Genauer gesagt veröffentlichen Sie Ereignisse in einem Namespacethema in Event Grid und pushen diese Ereignisse von einem Ereignisabonnement an einen Webhookhandler. Weitere Informationen zum Pushübermittlungsmodell finden Sie unter Übersicht über Pushübermittlung.
Hinweis
Azure Event Grid-Namespaces unterstützen derzeit Authentifizierung mit SAS-Token (Shared Access Signature) und Zugriffsschlüsseln.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Erstellen eines Event Grid-Namespace
Ein Event Grid-Namespace stellt einen benutzerdefinierten Endpunkt bereit, an dem Sie Ihre Ereignisse bereitstellen. Im folgenden Beispiel wird ein Namespace in Ihrer Ressourcengruppe mithilfe von Bash in der Azure Cloud Shell erstellt. Der Namespace-Name muss eindeutig sein, da er Teil eines DNS-Eintrags (Domain Name System) ist.
Navigieren Sie zum Azure-Portal.
Geben Sie auf der Suchleiste des Themas
Event Grid Namespaces
ein, und wählen SieEvent Grid Namespaces
aus den Ergebnissen aus.Wählen Sie auf der Seite Event Grid-Namespaces die Option + Erstellen auf der Befehlsleiste aus.
Führen Sie auf der Seite Namespace erstellen die folgenden Schritte aus:
- Wählen Sie das Azure-Abonnement aus, in dem Sie den Namespace erstellen möchten.
- Wählen Sie Neu erstellen aus, um eine neue Ressourcengruppe zu erstellen, oder wählen Sie eine bereits vorhandene Ressourcengruppe aus.
- Geben Sie einen Namen für den Namespace ein.
- Wählen Sie unter Speicherort den Speicherort aus, an dem Sie die Ressourcengruppe erstellen möchten.
- Wählen Sie dann Überprüfen + erstellen aus.
- Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.
Wählen Sie nach erfolgreicher Bereitstellung auf der Seite Bereitstellung die Option Zu Ressource wechseln aus.
Abrufen des Zugriffsschlüssels
- Wählen Sie auf der Seite Event Grid-Namespace im linken Menü die Option Zugriffsschlüssel aus.
- Wählen Sie neben dem Zugriffsschlüssel die Schaltfläche „Kopieren“ aus.
- Speichern Sie den Zugriffsschlüssel an einem beliebigen Ort. Es wird im weiteren Verlauf der Schnellstartanleitung noch benötigt.
Erstellen eines Themas im Namespace
Erstellten Sie ein Thema, das alle Ereignisse enthält, die am Namespaceendpunkt veröffentlicht werden.
- Wählen Sie im linken Menü die Option Themen aus.
- Wählen Sie auf der Seite Themen auf der Befehlsleiste die Option + Thema aus.
- Gehen Sie auf der Seite Thema erstellen wie folgt vor:
Erstellen eines Nachrichtenendpunkts
Vor dem Abonnieren der Ereignisse erstellen Sie zunächst den Endpunkt für die Ereignisnachricht. Der Endpunkt führt in der Regel Aktionen auf der Grundlage der Ereignisdaten aus. Um diesen Schnellstart zu vereinfachen stellen Sie eine vorab erstellte Web-App bereit, welche die Ereignisnachrichten anzeigt. Die bereitgestellte Lösung umfasst einen App Service-Plan, eine App Service-Web-App und Quellcode von GitHub.
Wählen Sie Deploy to Azure (In Azure bereitstellen), um die Lösung für Ihr Abonnement bereitzustellen.
Gehen Sie auf der Seite Benutzerdefinierte Bereitstellung wie folgt vor:
Wählen Sie unter Ressourcengruppe die Ressourcengruppe aus, die Sie beim Erstellen des Speicherkontos erstellt haben. Dadurch muss zur Bereinigung nach Abschluss des Tutorials einfach nur die Ressourcengruppe gelöscht werden.
Geben Sie unter Websitename einen Namen für die Web-App ein.
Geben Sie unter Name des Hostingplans einen Namen für den App Service-Plan zum Hosten der Web-App ein.
Klicken Sie auf Überprüfen + erstellen.
Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.
Die Bereitstellung dauert einige Minuten. Wählen Sie auf der Seite Bereitstellung die Option Zu Ressourcengruppe wechseln aus.
Wählen Sie auf der Seite Ressourcengruppe in der Ressourcenliste die von Ihnen erstellte Web-App aus. In dieser Liste werden auch der App Service-Plan und das Speicherkonto angezeigt.
Wählen Sie auf der Seite App Service für Ihre Web-App die URL aus, um zur entsprechenden Website zu navigieren. Die URL muss folgendes Format haben:
https://<your-site-name>.azurewebsites.net
.Vergewissern Sie sich, dass die Website angezeigt wird, aber noch keine Ereignisse veröffentlicht wurden.
Wichtig
Lassen Sie das Fenster „Azure Event Grid-Viewer“ geöffnet, sodass Sie Ereignisse anzeigen können, wenn diese veröffentlicht werden.
Erstellen eines Ereignisabonnements
Erstellen Sie ein Ereignisabonnement, und legen Sie dabei den Übermittlungsmodus auf Push fest, um die Pushübermittlung zu unterstützen.
- Wechseln Sie von dem Tab oder Fenster mit der geöffneten Seite Event Hubs-Namespace zu dem Tab oder Fenster mit der geöffneten Seite Event Grid-Namespace.
- Wählen Sie auf der Seite Event Grid-Namespace im linken Menü die Option Themen aus.
- Wählen Sie auf der Seite Themen das Thema aus, das Sie im vorherigen Schritt erstellt haben.
- Wählen Sie auf der Befehlsleiste die Option + Abonnement aus.
- Gehen Sie auf der Seite Ereignisabonnement erstellen wie folgt vor:
Geben Sie auf der Registerkarte Basic unter Name einen Namen für das Ereignisabonnement ein.
Wählen Sie für den Ereignisübermittlungsmodus die Option Push aus.
Wählen Sie als Endpunkttyp die Option Webhook aus.
Wählen Sie Endpunkt konfigurieren aus.
Geben Sie auf der Seite Webhook den Endpunkt (z. B.
https://spegridsite0520.azurewebsites.net/api/updates
) an, wie im folgenden Beispiel gezeigt, und wählen Sie Auswahl bestätigen aus.Wählen Sie auf der Seite Abonnement erstellen die Option Erstellen aus.
Senden von Ereignissen an Ihr Thema
Senden Sie nun ein Beispielereignis an das Namespacethema, indem Sie die Schritte in diesem Abschnitt ausführen.
Deklarieren von Variablen
Starten Sie Cloud Shell im Azure-Portal. Wechseln Sie zu Bash.
Führen Sie den folgenden Befehl aus, um eine Variable zum Speichern des Ressourcengruppennamens zu deklarieren. Ersetzen Sie
RESOUREGROUPNAME
durch den Namen Ihrer Azure-Ressourcengruppe.resource_group=RESOURCEGROUPNAME
Führen Sie in Cloud Shell den folgenden Befehl aus, um eine Variable zum Speichern des Namespacenamens zu deklarieren. Ersetzen Sie
NAMESPACENAME
durch den Namen Ihres Event Grid-Namespace.namespace=NAMESPACENAME
Führen Sie den folgenden Befehl aus, um eine Variable zum Speichern des zuvor notierten Zugriffsschlüsselwerts zu deklarieren. Ersetzen Sie
ACCESSKEY
durch den Wert des Zugriffsschlüssels für den Event Grid-Namespace.key=ACCESSKEY
Führen Sie in Cloud Shell den folgenden Befehl aus, um eine Variable zum Speichern des Namespacenamens zu deklarieren.
topic=TOPICNAME
Veröffentlichen eines Ereignisses
Rufen Sie den Hostnamen des Namespaces ab. Sie erstellen damit den HTTP-Endpunkt des Namespaces, an den Ereignisse gesendet werden. Die folgenden Operationen waren erstmals mit der API-Version
2023-06-01-preview
verfügbar. Sie können den Hostnamen auch über die Seite Übersicht Ihres Event Grid-Namespace im Azure-Portal abrufen.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
Erstellen Sie ein CloudEvents-kompatibles Beispielereignis:
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"}} '
Bei dem
data
-Element handelt es sich um die Nutzlast Ihres Ereignisses. Für dieses Feld kann ein beliebiger wohlgeformter JSON-Code verwendet werden. Weitere Informationen zu Eigenschaften (auch als Kontextattribute bezeichnet), die in ein Ereignis einfließen können, finden Sie in den CloudEvents-Spezifikationen.Verwenden Sie CURL, um das Ereignis an das Thema zu senden. CURL ist ein Hilfsprogramm zum Senden von HTTP-Anforderungen.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uri
Überprüfen des Ereignisempfangs durch Azure Event Grid Viewer
Überprüfen Sie, ob in der Azure Event Grid Viewer-Web-App die Ereignisse angezeigt werden, die von Event Grid empfangen wurden.
Zugehöriger Inhalt
In diesem Schnellstart haben Sie einen Webhook als Ereignishandler verwendet. Einen Schnellstart mit Azure Event Hub als Ereignishandler finden Sie unter Übermitteln von Ereignissen an Azure Event Hubs mithilfe von Namespacethemen.