Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung rufen Sie die Übermittlung mithilfe des curl
Bash-Shellbefehls ab, um Ereignisse zu veröffentlichen, zu empfangen und zu bestätigen. Verwenden Sie Azure CLI-Befehle zum Erstellen von Azure Event Grid-Ressourcen. Dieser Artikel eignet sich für einen schnellen Test der Pull-Übermittlungsfunktion.
Beispielcode, der die Datenebenen-SDKs verwendet, finden Sie in den folgenden Ressourcen:
- .NET: Senden und Empfangen von Nachrichten aus einem Azure Event Grid-Namespacethema (.NET)
- Java: Veröffentlichen von Ereignissen in Namespacethemen mit Java
- Java: Empfangen von Ereignissen mithilfe der Pull-Übermittlung mit Java
Weitere Informationen zum Pull-Übermittlungsmodell finden Sie unter Azure Event Grid-Namespacekonzepte und Pull-Übermittlung mit HTTP-Artikeln .
Wenn Sie nicht über ein Azure-Konto verfügen, erstellen Sie ein kostenloses Konto , bevor Sie beginnen.
Voraussetzungen
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter "Erste Schritte mit Azure Cloud Shell".
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen möchten, installieren Sie die Azure CLI. Wenn Sie mit Windows oder macOS arbeiten, 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. Um den Authentifizierungsprozess abzuschließen, führen Sie die schritte aus, die in Ihrem Terminal angezeigt werden. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Wenn Sie dazu aufgefordert werden, installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten 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 auf die neueste Version zu aktualisieren.
- Für diesen Artikel ist mindestens Version 2.0.70 der Azure CLI erforderlich. Wenn Sie Azure Cloud Shell verwenden, ist die neueste Version bereits installiert.
Erstellen einer Ressourcengruppe
Erstellen Sie mit dem Befehl az group create eine Azure-Ressourcengruppe. Verwenden Sie diese Ressourcengruppe, um alle Ressourcen zu enthalten, die Sie in diesem Artikel erstellen.
Die allgemeinen Schritte zur Verwendung von Cloud Shell zum Ausführen von Befehlen sind:
- Wählen Sie "Cloud Shell öffnen " aus, um ein Azure Cloud Shell-Fenster im rechten Bereich anzuzeigen.
- Kopieren Sie den Befehl, und fügen Sie ihn in das Azure Cloud Shell-Fenster ein.
- Drücken Sie die EINGABETASTE, um den Befehl auszuführen.
Deklarieren Sie eine Variable, die den Namen einer Azure-Ressourcengruppe enthalten soll. Geben Sie einen Namen für die Ressourcengruppe an, indem Sie
<your-resource-group-name>
durch Ihren Wert ersetzen.resource_group="<your-resource-group-name>"
Erstellen Sie eine Ressourcengruppe. Sie können den Speicherort an einen beliebigen Azure-Speicherort ändern.
az group create --name $resource_group --location eastus
Aktivieren des Event Grid-Ressourcenanbieters
Wenn Sie "Event Grid" zum ersten Mal in Ihrem Azure-Abonnement verwenden, müssen Sie möglicherweise 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 eines Namespace
Ein Event Grid-Namespace stellt einen benutzerdefinierten Endpunkt bereit, für den Sie Ihre Ereignisse bereitstellen. Im folgenden Beispiel wird mithilfe von Bash in Azure Cloud Shell ein Namespace in Ihrer Ressourcengruppe erstellt. Der Namespacename muss eindeutig sein, da er Teil eines DNS-Eintrags (Domain Name System) ist. Ein Namespacename sollte die folgenden Regeln erfüllen:
- Es sollte zwischen 3 und 50 Zeichen bestehen.
- Es sollte regional einzigartig sein.
- Nur zulässige Zeichen sind: a-z, A-Z, 0-9 und -
- Er sollte nicht mit reservierten Schlüsselwortpräfixen wie
Microsoft
,System
oderEventGrid
beginnen.
Deklarieren Sie eine Variable, die den Namen für den Event Grid-Namespace enthalten soll. Geben Sie einen Namen für den Namespace an, indem Sie
<your-namespace-name>
durch Ihren Wert ersetzen.namespace="<your-namespace-name>"
Erstellen Sie einen Namespace. Möglicherweise möchten Sie den Speicherort ändern, an dem Sie ihn bereitstellen.
az eventgrid namespace create --resource-group $resource_group --name $namespace --location eastus
Erstellen eines Namespacethemas
Erstellen Sie ein Thema, das alle Ereignisse enthält, 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 Namespace-Thema an, indem Sie
<your-topic-name>
durch Ihren Wert ersetzen.topic="<your-topic-name>"
Erstellen Sie Ihr Namespacethema:
az eventgrid namespace topic create --resource-group $resource_group --name $topic --namespace-name $namespace
Erstellen eines Ereignisabonnements
Erstellen Sie ein Ereignisabonnement, das den Übermittlungsmodus auf die Warteschlange festlegt, was die Pull-Übermittlung unterstützt. Weitere Informationen zu allen Konfigurationsoptionen finden Sie unter Azure Event Grid REST API.
Deklarieren Sie eine Variable, die den Namen für ein Ereignisabonnement für Ihr Namespacethema enthält. Geben Sie einen Namen für das Ereignisabonnement an, indem Sie
<your-event-subscription-name>
durch Ihren Wert ersetzen.event_subscription="<your-event-subscription-name>"
Erstellen Sie ein Ereignisabonnement für das Namespacethema:
az eventgrid namespace topic event-subscription create --resource-group $resource_group --topic-name $topic --name $event_subscription --namespace-name $namespace --delivery-configuration "{deliveryMode:Queue,queue:{receiveLockDurationInSeconds:300,maxDeliveryCount:4,eventTimeToLive:P1D}}"
Senden von Ereignissen an Ihr Thema
Senden Sie ein Beispielereignis an das Namespacethema, indem Sie die Schritte in diesem Abschnitt ausführen.
Namespace-Zugriffsschlüssel auflisten
Rufen Sie die Zugriffsschlüssel ab, die dem von Ihnen erstellten Namespace zugeordnet sind. Sie benötigen eine davon, um sich beim Veröffentlichen von Ereignissen zu authentifizieren. Um Ihre Schlüssel auflisten zu können, rufen Sie die vollständige Namespaceressourcen-ID ab. Führen Sie den folgenden Befehl aus:
namespace_resource_id=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "id" --output tsv)
Rufen Sie den ersten Schlüssel aus dem Namespace ab:
key=$(az eventgrid namespace list-key --resource-group $resource_group --namespace-name $namespace --query "key1" --output tsv)
Veröffentlichen eines Ereignisses
Rufen Sie den Namespace-Hostnamen ab. Sie verwenden ihn, um den Namespace-HTTP-Endpunkt zu verfassen, an den Ereignisse gesendet werden. Die folgenden Vorgänge waren zuerst mit 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 Beispiel für ein CloudEvents-kompatibles Ereignis:
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"}} '
Das
data
Element ist die Nutzlast Ihres Ereignisses. Für dieses Feld kann ein beliebiger wohlgeformter JSON-Code verwendet werden. Eigenschaften, die in ein Ereignis gehen können, werden auch als Kontextattribute bezeichnet. Weitere Informationen finden Sie unter CloudEvents.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
Ereignis empfangen
Sie erhalten Ereignisse aus dem Ereignisraster mithilfe eines Endpunkts, der sich auf ein Ereignisabonnement bezieht.
Verfassen Sie den Endpunkt, indem Sie den folgenden Befehl ausführen:
receive_operation_uri="https://"$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:receive?api-version=2023-06-01-preview
Senden Sie eine Anforderung, um das Ereignis zu nutzen:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" $receive_operation_uri
Bestätigen eines Ereignisses
Nachdem Sie ein Ereignis erhalten haben, übergeben Sie dieses Ereignis an Ihre Anwendung zur Verarbeitung. Nachdem Sie Ihr Ereignis erfolgreich verarbeitet haben, benötigen Sie dieses Ereignis nicht mehr in Ihrem Ereignisabonnement. Um Event Grid anzuweisen, das Ereignis zu löschen, bestätigen Sie es mithilfe seines Sperrtokens, das Sie in der Antwort des Empfangsvorgangs erhalten haben.
Im vorherigen Abschnitt haben Sie eine Antwort erhalten, die ein
brokerProperties
Objekt mit einerlockToken
Eigenschaft enthält. Kopieren Sie den Sperrtokenwert, und legen Sie ihn für eine Umgebungsvariable fest:lockToken="<paste-the-lock-token-here>"
Erstellen Sie die Payload des Bestätigungsvorgangs, die das Sperrtoken für das Ereignis angibt, das bestätigt werden soll.
acknowledge_request_payload=' { "lockTokens": ["'$lockToken'"]} '
Fahren Sie mit dem Erstellen der Zeichenfolge mit dem Bestätigungsvorgangs-URI fort:
acknowledge_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic/eventsubscriptions/$event_subscription:acknowledge?api-version=2023-06-01-preview
Senden Sie schließlich eine Anforderung, um das empfangene Ereignis zu bestätigen:
curl -X POST -H "Content-Type: application/json" -H "Authorization:SharedAccessKey $key" -d "$acknowledge_request_payload" $acknowledge_operation_uri
Wenn der Bestätigungsvorgang ausgeführt wird, bevor das Sperrtoken abläuft (300 Sekunden wie festgelegt beim Erstellen des Ereignisabonnements), sollte eine Antwort wie im folgenden Beispiel angezeigt werden:
{"succeededLockTokens":["CiYKJDQ4NjY5MDEyLTk1OTAtNDdENS1BODdCLUYyMDczNTYxNjcyMxISChDZae43pMpE8J8ovYMSQBZS"],"failedLockTokens":[]}
Nächster Schritt
Weitere Informationen zum Pull-Übermittlungsmodell finden Sie unter Pull-Übermittlung mit HTTP.