Tutoriel : Acheminer des événements personnalisés vers des connexions hybrides Azure Relay avec Azure CLI et Event Grid

Azure Event Grid est un service de gestion d’événements pour le cloud. Les connexions hybrides Azure Relay sont l’un des gestionnaires d’événements pris en charge. 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. Ces applications peuvent se trouver dans votre réseau d’entreprise. 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. Vous envoyez les événements à la connexion hybride.

Prérequis

  • Cet article nécessite la version 2.0.56 ou ultérieure de l’interface Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

Créer un groupe de ressources

Les rubriques Event Grid sont des ressources Azure et doivent être placées dans un groupe de ressources Azure. Un groupe de ressources est une collection logique dans laquelle des ressources Azure sont déployées et gérées.

Créez un groupe de ressources avec la commande az group create.

L’exemple suivant crée un groupe de ressources nommé gridResourceGroup à l’emplacement westus2.

az group create --name gridResourceGroup --location westus2

Créer une rubrique personnalisée

Une rubrique Event Grid fournit un point de terminaison défini par l’utilisateur vers lequel vous envoyez vos événements. L’exemple suivant permet de créer la rubrique personnalisée dans votre groupe de ressources. Remplacez <topic_name> par un nom unique pour votre rubrique personnalisée. Le nom de la rubrique Event Grid doit être unique, car il est représenté par une entrée DNS.

az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup

S’abonner à une rubrique personnalisée

Vous vous abonnez à une rubrique de la Event Grid 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. L’ID de connexion hybride est au 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. Il construit l’identifiant de la connexion hybride, puis s’abonne à une rubrique Event Grid. Le script définit le type de point de terminaison sur hybridconnection et utilise l’ID de connexion hybride pour le point de terminaison.

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

relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --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.

Créer l’application de traitement des événements

Vous avez besoin d’une application qui peut récupérer des événements à partir de la connexion hybride. L’exemple de consommateur de connexions hybrides Microsoft Azure Event Grid pour C# effectue cette opération. Vous avez déjà terminé les étapes requises.

  1. Vérifiez que vous disposez de Visual Studio 2019 ou version ultérieure.

  2. Clonez le référentiel sur votre ordinateur local.

  3. Chargez le projet HybridConnectionConsumer dans 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.

  5. Compilez et exécutez l’application à partir de Visual Studio.

Envoyer un événement à votre rubrique

Nous allons maintenant déclencher un événement pour voir comment Event Grid distribue le message à votre point de terminaison. Cet article montre comment utiliser Azure CLI pour déclencher l’événement. Vous pouvez également utiliser l’application de serveur de publication Event Grid.

Tout d’abord, il nous faut l’URL et la clé de la rubrique personnalisée. Utilisez de nouveau le nom de votre rubrique personnalisée pour <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. En règle générale, une application ou un service Azure envoie les données d’événements. CURL est un utilitaire qui envoie des requêtes HTTP. Dans cet article, utilisez CURL pour envoyer l’événement à la rubrique personnalisée.

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.

Nettoyer les ressources

Si vous envisagez de continuer à utiliser cet événement, ne supprimez pas les ressources créées dans cet article. Sinon, utilisez la commande suivante pour supprimer les ressources créées dans cet article.

az group delete --name gridResourceGroup

Étapes suivantes

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 :