Freigeben über


Ü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.

  1. Navigieren Sie zum Azure-Portal.

  2. Geben Sie auf der Suchleiste des Themas Event Grid Namespaces ein, und wählen Sie Event Grid Namespaces aus den Ergebnissen aus.

    Screenshot der Suchleiste im Azure-Portal.

  3. Wählen Sie auf der Seite Event Grid-Namespaces die Option + Erstellen auf der Befehlsleiste aus. Screenshot der Seite „Event Grid-Namespaces“ mit der Schaltfläche „Erstellen“ auf der ausgewählten Befehlsleiste.

  4. Führen Sie auf der Seite Namespace erstellen die folgenden Schritte aus:

    1. Wählen Sie das Azure-Abonnement aus, in dem Sie den Namespace erstellen möchten.
    2. Wählen Sie Neu erstellen aus, um eine neue Ressourcengruppe zu erstellen, oder wählen Sie eine bereits vorhandene Ressourcengruppe aus.
    3. Geben Sie einen Namen für den Namespace ein.
    4. Wählen Sie unter Speicherort den Speicherort aus, an dem Sie die Ressourcengruppe erstellen möchten.
    5. Wählen Sie dann Überprüfen + erstellen aus.
      Screenshot der Seite „Namespace erstellen“.
    6. Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.
  5. Wählen Sie nach erfolgreicher Bereitstellung auf der Seite Bereitstellung die Option Zu Ressource wechseln aus.

Abrufen des Zugriffsschlüssels

  1. Wählen Sie auf der Seite Event Grid-Namespace im linken Menü die Option Zugriffsschlüssel aus.
  2. Wählen Sie neben dem Zugriffsschlüssel die Schaltfläche „Kopieren“ aus. Screenshot der Seite „Event Grid-Namespaces“ mit ausgewählter Registerkarte „Zugriffsschlüssel“.
  3. 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.

  1. Wählen Sie im linken Menü die Option Themen aus.
  2. Wählen Sie auf der Seite Themen auf der Befehlsleiste die Option + Thema aus. Screenshot der Seite „Themen“.
  3. Gehen Sie auf der Seite Thema erstellen wie folgt vor:
    1. Geben Sie unter Name einen Namen für das Thema ein.
    2. Klicken Sie auf Erstellen.
      Screenshot der Seite „Thema erstellen“.

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.

  1. Wählen Sie Deploy to Azure (In Azure bereitstellen), um die Lösung für Ihr Abonnement bereitzustellen.

    Schaltfläche zum Bereitstellen der Resource Manager-Vorlage in Azure.

  2. Gehen Sie auf der Seite Benutzerdefinierte Bereitstellung wie folgt vor:

    1. 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.

    2. Geben Sie unter Websitename einen Namen für die Web-App ein.

    3. Geben Sie unter Name des Hostingplans einen Namen für den App Service-Plan zum Hosten der Web-App ein.

    4. Klicken Sie auf Überprüfen + erstellen.

      Screenshot der Seite „Benutzerdefinierte Bereitstellung“

  3. Wählen Sie auf der Seite Überprüfen + erstellen die Option Erstellen aus.

  4. Die Bereitstellung dauert einige Minuten. Wählen Sie auf der Seite Bereitstellung die Option Zu Ressourcengruppe wechseln aus.

    Screenshot: Seite „Bereitstellung erfolgreich“ mit einem Link zur Ressourcengruppe.

  5. 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.

    Screenshot: Auswahl der Web-App in der Ressourcengruppe.

  6. 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.

    Screenshot: Auswahl des Links zum Navigieren zur Web-App.

  7. Vergewissern Sie sich, dass die Website angezeigt wird, aber noch keine Ereignisse veröffentlicht wurden.

    Screenshot:Neue Website

    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.

  1. 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.
  2. Wählen Sie auf der Seite Event Grid-Namespace im linken Menü die Option Themen aus.
  3. Wählen Sie auf der Seite Themen das Thema aus, das Sie im vorherigen Schritt erstellt haben.
  4. Wählen Sie auf der Befehlsleiste die Option + Abonnement aus. Screenshot der Seite „Thema“ mit ausgewählter Schaltfläche „Abonnement erstellen“.
  5. Gehen Sie auf der Seite Ereignisabonnement erstellen wie folgt vor:
    1. Geben Sie auf der Registerkarte Basic unter Name einen Namen für das Ereignisabonnement ein.

    2. Wählen Sie für den Ereignisübermittlungsmodus die Option Push aus.

    3. Wählen Sie als Endpunkttyp die Option Webhook aus.

    4. Wählen Sie Endpunkt konfigurieren aus.

      Screenshot: Seite „Abonnement erstellen“, auf der „Push“ als Übermittlungsmodus und „WebHook“ als Endpunkttyp ausgewählt ist

    5. 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.

      Screenshot: Seite „Webhook“ mit einem Wert für den Abonnentenendpunkt

    6. Wählen Sie auf der Seite Abonnement erstellen die Option Erstellen aus.

      Screenshot: Seite „Abonnement erstellen“, auf der alle Felder ausgefüllt sind

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

  1. Starten Sie Cloud Shell im Azure-Portal. Wechseln Sie zu Bash.

    Screenshot des Symbols für Cloud Shell.

  2. 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
    
  3. 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
    
  4. 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
    
  5. 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

  1. 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
    
  2. 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.

  3. 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.

Screenshot von Azure Event Grid Viewer mit einem empfangenen Beispielereignis

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.