Tutoriel : Acheminer des événements personnalisés vers des connexions hybrides Azure Relay avec Azure CLI et Event GridTutorial: Route custom events to Azure Relay Hybrid Connections 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. Les connexions hybrides Azure Relay sont l’un des gestionnaires d’événements pris en charge.Azure Relay Hybrid Connections is one of the supported event handlers. Vous utilisez des connexions hybrides comme gestionnaires d’événements lorsque vous devez traiter des événements à partir d’applications qui ne possèdent pas de point de terminaison public.You use hybrid connections as the event handler when you need to process events from applications that don't have a public endpoint. Ces applications peuvent se trouver dans votre réseau d’entreprise.These applications might be within your corporate enterprise network. 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 à la connexion hybride.You send the events to the hybrid connection.

PrérequisPrerequisites

  • Utilisez l’environnement Bash dans Azure Cloud Shell.Use the Bash environment in Azure Cloud Shell.

    Lancer Cloud Shell dans une nouvelle fenêtreLaunch Cloud Shell in a new window

  • Si vous préférez, installez l’interface Azure CLI pour exécuter les commandes de référence de l’interface de ligne de commande.If you prefer, install the Azure CLI to run CLI reference commands.

    • Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login.If you're using a local installation, sign in to the Azure CLI by using the az login command. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal.To finish the authentication process, follow the steps displayed in your terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.For additional sign-in options, see Sign in with the Azure CLI.

    • Lorsque vous y êtes invité, installez les extensions Azure CLI lors de la première utilisation.When you're prompted, install Azure CLI extensions on first use. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.For more information about extensions, see Use extensions with the Azure CLI.

    • Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées.Run az version to find the version and dependent libraries that are installed. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.To upgrade to the latest version, run az upgrade.

  • Cet article nécessite la version 2.0.56 ou ultérieure d’Azure CLI.This article requires version 2.0.56 or later of the Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.If using Azure Cloud Shell, the latest version is already installed.

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

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 <topic_name> par un nom unique pour votre rubrique personnalisée.Replace <topic_name> with a unique name for your custom topic. Le nom de la rubrique de la grille d’événements doit être unique, car elle est représentée par une entrée DNS.The event grid topic name must be unique because it's represented by a DNS entry.

az eventgrid topic create --name <topic_name> -l westus2 -g 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 vous abonne à la rubrique personnalisée que vous avez créée et transmet l’ID de ressource de la connexion hybride au 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 hybrid connection for the endpoint. L’ID de connexion hybride est au format :The hybrid connection ID is in the format:

/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>

Le script suivant obtient l’ID de ressource de l’espace de nom Relay.The following script gets the resource ID of the relay namespace. Il construit l’identifiant de la connexion hybride, puis s’abonne à une rubrique Event Grid.It constructs the ID for the hybrid connection, and subscribes to an event grid topic. Le script définit le type de point de terminaison sur hybridconnection et utilise l’ID de connexion hybride pour le point de terminaison.The script sets the endpoint type to hybridconnection and uses the hybrid connection ID for the endpoint.

relayname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>

relayid=$(az resource show --name $relayname --resource-group $relayrg --resource-type Microsoft.Relay/namespaces --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)

az eventgrid event-subscription create \
  --source-resource-id $topicid \
  --name <event_subscription_name> \
  --endpoint-type hybridconnection \
  --endpoint $hybridid \
  --expiration-date "<yyyy-mm-dd>"

Notez qu’une date d’expiration est définie pour l’abonnement.Notice that an expiration date is set for the subscription.

Créer l’application de traitement des événementsCreate application to process events

Vous avez besoin d’une application qui peut récupérer des événements à partir de la connexion hybride.You need an application that can retrieve events from the hybrid connection. L’exemple de consommateur de connexions hybrides Microsoft Azure Event Grid pour C# effectue cette opération.The Microsoft Azure Event Grid Hybrid Connection Consumer sample for C# performs that operation. Vous avez déjà terminé les étapes requises.You've already finished the prerequisite steps.

  1. Vérifiez que vous disposez de Visual Studio 2019 ou version ultérieure.Make sure you have Visual Studio 2019 or later.

  2. Clonez le référentiel sur votre ordinateur local.Clone the repository to your local machine.

  3. Chargez le projet HybridConnectionConsumer dans Visual Studio.Load HybridConnectionConsumer project in Visual Studio.

  4. Dans Program.cs, remplacez <relayConnectionString> et <hybridConnectionName> par la chaîne de connexion et le nom de la connexion hybride créés.In Program.cs, replace <relayConnectionString> and <hybridConnectionName> with the relay connection string and hybrid connection name that you created.

  5. Compilez et exécutez l’application à partir de Visual Studio.Compile and run the application from Visual Studio.

Envoyer un événement à votre rubriqueSend an event to your 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. Cet article montre comment utiliser Azure CLI pour déclencher l’événement.This article shows how to use Azure CLI to trigger the event. Vous pouvez également utiliser l’application de serveur de publication Event Grid.Alternatively, you can use Event Grid publisher application.

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. Utilisez de nouveau le nom de votre rubrique personnalisée pour <topic_name>.Again, use your custom topic name for <topic_name>.

endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -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.

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

Votre application d’écouteur doit recevoir le message d’événement.Your listener application should receive the event message.

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: