Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge aus, um die neuesten Funktionen, Sicherheitsupdates und technischen Support zu nutzen.
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. Um spezifisch zu sein, verwenden Sie Azure CLI und Curl, um Ereignisse in einem Namespacethema im Event Grid zu veröffentlichen und diese Ereignisse von einem Ereignisabonnement an ein Event Hubs Handler-Ziel zu pushen. Weitere Informationen zum Pushübermittlungsmodell finden Sie unter Übersicht über Pushübermittlung.
Hinweis
Die Event Grid-Erweiterung der Azure CLI unterstützt noch keine Namespaces und darin enthaltene Ressourcen. Wir verwenden die Azure CLI-Ressource, um Event Grid-Ressourcen zu erstellen.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
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.
Für diesen Artikel ist mindestens Version 2.0.70 der Azure CLI erforderlich. Bei Verwendung von Azure Cloud Shell ist die aktuelle Version bereits installiert.
Wenn Sie zuvor in Ihrem Azure-Abonnement noch nicht Event Grid verwendet haben, sollten Sie den Event Grid-Ressourcenanbieter registrieren. Führen Sie den folgenden Befehl aus, um den Anbieter zu registrieren:
az provider register --namespace Microsoft.EventGrid
Es kann einen Moment dauern, bis die Registrierung abgeschlossen ist. Führen Sie den folgenden Befehl aus, um den Status zu überprüfen:
az provider show --namespace Microsoft.EventGrid --query "registrationState"
Wenn registrationState
Registered
ist, können Sie den Vorgang fortsetzen.
Erstellen Sie mit dem Befehl az group create eine Azure-Ressourcengruppe. Sie verwenden diese Ressourcengruppe, um alle in diesem Artikel erstellten Ressourcen zu enthalten.
Die allgemeinen Schritte zur Verwendung von Cloud Shell zum Ausführen von Befehlen sind:
Deklarieren Sie eine Variable, die den Namen einer Azure-Ressourcengruppe enthält. Geben Sie einen Namen für die Ressourcengruppe an, indem Sie <your-resource-group-name>
durch einen gewünschten Wert ersetzen.
resource_group="<your-resource-group-name>"
location="<your-resource-group-location>"
Erstellen Sie eine Ressourcengruppe. Ändern Sie den Speicherort, wie Sie es für richtig halten.
az group create --name $resource_group --location $location
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. Ein Namespacename sollte die folgenden Regeln einhalten:
Microsoft
, System
oder EventGrid
beginnen.Deklarieren Sie eine Variable, die den Namen für Ihren Event Grid-Namespace enthält. Geben Sie einen Namen für den Namespace an, indem Sie <your-namespace-name>
durch einen gewünschten Wert ersetzen.
namespace="<your-namespace-name>"
Erstellen eines Namespaces Möglicherweise möchten Sie den Ort ändern, an dem es bereitgestellt wird.
az eventgrid namespace create -g $resource_group -n $namespace -l $location
Erstellten Sie ein Thema, um alle Ereignisse zu speichern, die am Namespaceendpunkt veröffentlicht werden.
Deklarieren Sie eine Variable, die den Namen für Ihr Namespacethema enthält. Geben Sie einen Namen für das Namespacethema an, indem Sie <your-topic-name>
durch einen gewünschten Wert ersetzen.
topic="<your-topic-name>"
Erstellen Sie Ihr Namespacethema:
az eventgrid namespace topic create -g $resource_group -n $topic --namespace-name $namespace
Erstellen Sie eine Event Hubs-Ressource, die als Handlerziel für das Pushübermittlungsabonnement des Namespacethemas verwendet wird.
Deklarieren Sie eine Variable für den Namen des Event Hubs-Namespace.
eventHubsNamespace="<your-event-hubs-namespace-name>"
Erstellen des Event Hubs-Namespace
az eventhubs namespace create --resource-group $resource_group --name $eventHubsNamespace --location $location
Deklarieren Sie eine Variable für den Ereignishubnamen.
eventHubsEventHub="<your-event-hub-name>"
Führen Sie den folgenden Befehl aus, um einen Event Hub im Namespace zu erstellen.
az eventhubs eventhub create --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub
Führen Sie die folgenden Schritte aus, um mithilfe der verwalteten Identität Ereignisse an Event Hubs in Ihrem Event Hubs-Namespace zu übermitteln:
Aktivieren Sie die vom System zugewiesene verwaltete Identität im Event Grid-Namespace.
az eventgrid namespace update --resource-group $resource_group --name $namespace --identity {type:systemassigned}
Abrufen der vom Event Grid-Namespacesystem verwalteten Identitätsprinzipal-ID.
principalId=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query identity.principalId -o tsv)
Abrufen der Event Hubs Event Hub-Ressourcen-ID.
eventHubResourceId=$(az eventhubs eventhub show --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub --query id -o tsv)
Hinzufügen von Rollenzuweisungen in Event Hubs für die vom Event Grid System verwaltete Identität.
az role assignment create --role "Azure Event Hubs Data Sender" --assignee $principalId --scope $eventHubResourceId
Erstellung eines neuen Ereignisabonnements für die Pushübermittlung.
event_subscription="<your_event_subscription_name>"
az resource create --api-version 2023-06-01-preview --resource-group $resource_group --namespace Microsoft.EventGrid --resource-type eventsubscriptions --name $event_subscription --parent namespaces/$namespace/topics/$topic --location $location --properties "{\"deliveryConfiguration\":{\"deliveryMode\":\"Push\",\"push\":{\"maxDeliveryCount\":10,\"deliveryWithResourceIdentity\":{\"identity\":{\"type\":\"SystemAssigned\"},\"destination\":{\"endpointType\":\"EventHub\",\"properties\":{\"resourceId\":\"$eventHubResourceId\"}}}}}}"
Senden Sie nun ein Beispielereignis an das Namespacethema, indem Sie die Schritte in diesem Abschnitt ausführen.
Rufen Sie die Zugriffsschlüssel ab, die dem erstellten Namespace zugeordnet sind. Sie verwenden einen davon, um sich beim Veröffentlichen von Ereignissen zu authentifizieren. Um Ihre Schlüssel aufzulisten, benötigen Sie zunächst die vollständige Namespaceressourcen-ID. Rufen Sie sie ab, indem Sie den folgenden Befehl ausführen:
namespace_resource_id=$(az eventgrid namespace show -g $resource_group -n $namespace --query "id" --output tsv)
Rufen Sie den ersten Schlüssel aus dem Namespace ab:
key=$(az eventgrid namespace list-key -g $resource_group --namespace-name $namespace --query "key1" --output tsv)
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.
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
Navigieren Sie im Azure-Portal zur Seite Event Hubs-Namespace, aktualisieren Sie die Seite, und vergewissern Sie sich, dass der Indikator für eingehende Nachrichten im Diagramm angibt, dass ein Ereignis empfangen wurde.
In diesem Artikel haben gelernt, wie Sie den Event Grid Namespace und die Event Hubs Ressourcen erstellen und konfigurieren. Schritt-für-Schritt-Anleitungen zum Empfangen von Ereignissen von einem Event Hub finden Sie in den folgenden Tutorials:
Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenSchulung
Zertifizierung
Microsoft Certified: Azure Administrator Associate - Certifications
Demonstrate key skills to configure, manage, secure, and administer key professional functions in Microsoft Azure.