Démarrage rapide : Acheminer des événements personnalisés vers Azure Event Hubs avec Azure CLI et Event GridQuickstart: Route custom events to Azure Event Hubs with Azure CLI and Event Grid

Azure Event Grid est un service de gestion d’événements pour le cloud.Azure Event Grid is an eventing service for the cloud. Azure Event Hubs est l’un des gestionnaires d’événements pris en charge.Azure Event Hubs is one of the supported event handlers. Dans cet article, vous utilisez l’interface de ligne de commande Azure pour créer une rubrique personnalisée, vous abonner à cette rubrique personnalisée et déclencher l’événement pour afficher le résultat.In this article, you use the Azure CLI to create a custom topic, subscribe to the custom topic, and trigger the event to view the result. Vous envoyez les événements à un concentrateur d’événements.You send the events to an event hub.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

Créer un groupe de ressourcesCreate a resource group

Les rubriques Event Grid sont des ressources Azure et doivent être placées dans un groupe de ressources Azure.Event Grid topics are Azure resources, and must be placed in an Azure resource group. Un groupe de ressources est une collection logique dans laquelle des ressources Azure sont déployées et gérées.The resource group is a logical collection into which Azure resources are deployed and managed.

Créez un groupe de ressources avec la commande az group create.Create a resource group with the az group create command.

L’exemple suivant crée un groupe de ressources nommé gridResourceGroup à l’emplacement westus2.The following example creates a resource group named gridResourceGroup in the westus2 location.

az group create --name gridResourceGroup --location westus2

Activer le fournisseur de ressources Event GridEnable the Event Grid resource provider

Si vous n’avez jamais utilisé Event Grid dans votre abonnement Azure, vous risquez de devoir inscrire le fournisseur de ressources Event Grid.If you haven't previously used Event Grid in your Azure subscription, you might need to register the Event Grid resource provider. Exécutez la commande suivante pour enregistrer le fournisseur :Run the following command to register the provider:

az provider register --namespace Microsoft.EventGrid

L’inscription peut prendre un certain temps.It might take a moment for the registration to finish. Pour vérifier l’état, exécutez :To check the status, run:

az provider show --namespace Microsoft.EventGrid --query "registrationState"

Lorsque registrationState est Registered, vous êtes prêt à continuer.When registrationState is Registered, you're ready to continue.

Créer une rubrique personnaliséeCreate a Custom Topic

Une rubrique de grille d’événement fournit un point de terminaison défini par l’utilisateur vers lequel vous envoyez vos événements.An event grid topic provides a user-defined endpoint that you post your events to. L’exemple suivant permet de créer la rubrique personnalisée dans votre groupe de ressources.The following example creates the custom topic in your resource group. Remplacez <your-topic-name> par un nom unique pour votre rubrique personnalisée.Replace <your-topic-name> with a unique name for your custom topic. Le nom de la rubrique personnalisée doit être unique, car elle est représentée par une entrée DNS.The custom topic name must be unique because it's represented by a DNS entry.

topicname=<your-topic-name>
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup

Créer un event hubCreate event hub

Avant de nous abonner à la rubrique personnalisée, nous allons créer le point de terminaison pour le message de l’événement.Before subscribing to the custom topic, let's create the endpoint for the event message. Vous créez un concentrateur d’événements afin de collecter les événements.You create an event hub for collecting the events.

namespace=<unique-namespace-name>
hubname=demohub

az eventhubs namespace create --name $namespace --resource-group gridResourceGroup
az eventhubs eventhub create --name $hubname --namespace-name $namespace --resource-group gridResourceGroup

S’abonner à une rubrique personnaliséeSubscribe to a custom topic

Vous vous abonnez à une rubrique de la grille d’événements pour communiquer à Event Grid les événements qui vous intéressent. L’exemple suivant s’abonne à la rubrique personnalisée que vous avez créée et transmet l’ID de ressource du concentrateur d’événements vers le point de terminaison.You subscribe to an event grid topic to tell Event Grid which events you want to track. The following example subscribes to the custom topic you created, and passes the resource ID of the event hub for the endpoint. Le point de terminaison a le format suivant :The endpoint is in the format:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.EventHub/namespaces/<namespace-name>/eventhubs/<hub-name>

Le script suivant obtient l’ID de ressource du concentrateur d’événements, et s’abonne à une rubrique Event Grid.The following script gets the resource ID for the event hub, and subscribes to an event grid topic. Il définit le type de point de terminaison sur eventhub et utilise l’ID du concentrateur d’événements comme point de terminaison.It sets the endpoint type to eventhub and uses the event hub ID for the endpoint.

hubid=$(az eventhubs eventhub show --name $hubname --namespace-name $namespace --resource-group gridResourceGroup --query id --output tsv)
topicid=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name subtoeventhub \
  --endpoint-type eventhub \
  --endpoint $hubid

Le compte qui crée l’abonnement à l’événement doit pouvoir accéder en écriture à l’Event Hub.The account that creates the event subscription must have write access to the event hub.

Envoyer un événement à votre rubrique personnaliséeSend an event to your custom topic

Nous allons maintenant déclencher un événement pour voir comment Event Grid distribue le message à votre point de terminaison.Let's trigger an event to see how Event Grid distributes the message to your endpoint. Tout d’abord, il nous faut l’URL et la clé de la rubrique personnalisée.First, let's get the URL and key for the custom topic.

endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -g gridResourceGroup --query "key1" --output tsv)

Pour simplifier cet article, vous allez utiliser des exemples de données d’événements à envoyer à la rubrique personnalisée.To simplify this article, you use sample event data to send to the custom topic. En règle générale, une application ou un service Azure envoie les données d’événements.Typically, an application or Azure service would send the event data. CURL est un utilitaire qui envoie des requêtes HTTP.CURL is a utility that sends HTTP requests. Dans cet article, utilisez CURL pour envoyer l’événement à la rubrique personnalisée.In this article, use CURL to send the event to the custom topic. L’exemple suivant envoie trois événements à la rubrique Event Grid :The following example sends three events to the event grid topic:

for i in 1 2 3
do
   event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
   curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
done

Accédez au concentrateur d’événements dans le portail et notez que Event Grid a envoyé ces trois événements vers le concentrateur d’événements.Navigate to the event hub in the portal, and notice that Event Grid sent those three events to the event hub.

Afficher les messages

En général, vous créez une application qui récupère les événements dans un concentrateur d’événements.Typically, you create an application that retrieves the events from the event hub. Pour créer une application qui obtient les messages dans un concentrateur d’événements, consultez :To create an application that gets messages from an event hub, see:

Nettoyer les ressourcesClean up resources

Si vous envisagez de continuer à utiliser cet événement, ne supprimez pas les ressources créées dans cet article.If you plan to continue working with this event, don't clean up the resources created in this article. Sinon, utilisez la commande suivante pour supprimer les ressources créées dans cet article.Otherwise, use the following command to delete the resources you created in this article.

az group delete --name gridResourceGroup

Étapes suivantesNext steps

Maintenant que vous savez créer des rubriques et des abonnements d’événements, vous pouvez en apprendre davantage sur Event Grid et ce qu’il peut vous offrir :Now that you know how to create topics and event subscriptions, learn more about what Event Grid can help you do: