Router des événements personnalisés vers un point de terminaison Web avec le Portail Azure et Azure Event Grid
Event Grid est un service entièrement géré qui vous permet de facilement gérer des événements dans de nombreux services et applications Azure. Il simplifie la création d’applications pilotées par les événements et serverless. Pour une présentation du service, consultez Vue d’ensemble d’Event Grid.
Dans cet article, vous utilisez le portail Azure pour effectuer les tâches suivantes :
- Créez une rubrique personnalisée.
- Abonnez-vous à la rubrique personnalisée.
- Déclenchez l'événement.
- Affichez le résultat. En règle générale, vous envoyez des événements à un point de terminaison qui traite les données d’événement et entreprend des actions. Toutefois, pour simplifier cet article, vous envoyez les événements à une application web qui collecte et affiche les messages.
Prérequis
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Enregistrer le fournisseur de ressources Event Grid
Si vous n’avez pas déjà utilisé Event Grid auparavant, vous devez inscrire le fournisseur de ressources Event Grid. Si vous avez déjà utilisé Event Grid, passez à la section suivante.
Dans le portail Azure, procédez comme suit :
Sélectionner Abonnements dans le menu de gauche.
Sélectionnez l’abonnement que vous souhaitez utiliser pour Event Grid dans la liste des abonnements.
Dans la page Abonnement, sélectionnez Fournisseurs de ressources dans la section Paramètres du menu de gauche.
Recherchez Microsoft.EventGrid et assurez-vous que l’état est Non inscrit.
Sélectionnez Microsoft.EventGrid dans la liste des fournisseurs.
Sélectionnez Inscrire dans la barre de commandes.
Actualisez pour vous assurer que l’état de Microsoft.EventGrid est modifié en Inscrit.
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.
Connectez-vous au portail Azure.
Dans la barre de recherche de la rubrique, tapez Rubriques Event Grid, puis sélectionnez Rubriques Event Grid dans la liste déroulante.
Dans la page Rubriques Event Grid, sélectionnez + Créer dans la barre d’outils.
Dans la page Créer une rubrique, procédez comme suit :
Sélectionnez votre abonnementAzure.
Sélectionnez un groupe de ressources existant ou sélectionnez Créer, puis entrez un nom pour le groupe de ressources.
Donnez un nom unique à la rubrique personnalisée. Le nom de la rubrique doit être unique, car elle est représentée par une entrée DNS. N’utilisez pas le nom indiqué dans l’image. Au lieu de cela, créez votre propre nom : il doit comprendre entre 3 et 50 caractères, et contenir uniquement des valeurs a-z, A-Z, 0-9 et « - ».
Sélectionnez un emplacement pour la rubrique Event Grid.
Au bas de la page, sélectionnez Examiner et créer.
Sous l’onglet Vérifier + créer de la page Créer une rubrique, sélectionnez Créer.
Une fois le déploiement terminé, sélectionnez Accéder à la ressource pour voir la page Rubrique système Event Grid pour votre rubrique. Ne fermez pas cette page. Vous l’utiliserez plus loin dans le guide de démarrage rapide.
Notes
Pour simplifier le démarrage rapide, vous utiliserez uniquement la page Informations de base pour créer une rubrique. Pour obtenir des instructions détaillées sur la configuration des paramètres de résidence des données, de sécurité et de réseau sur d’autres pages de l’Assistant, consultez Créer une rubrique personnalisée.
Créer un point de terminaison de message
Avant de créer un abonnement pour la rubrique personnalisée, créez un point de terminaison pour le message d’événement. En règle générale, le point de terminaison entreprend des actions en fonction des données d’événement. Pour simplifier ce guide de démarrage rapide, vous allez déployer une application web prédéfinie qui affiche les messages d’événement. La solution déployée comprend un plan App Service, une offre App Service Web Apps et du code source en provenance de GitHub.
Dans la page de l’article, sélectionnez Déployer sur Azure pour déployer la solution sur votre abonnement. Dans le portail Azure, indiquez des valeurs pour les paramètres.
Dans la page Déploiement personnalisé, procédez comme suit :
Pour Groupe de ressources, sélectionnez un groupe de ressources existant ou créez-en un.
Pour Nom du site, entrez un nom pour l’application web.
Pour Nom du plan d’hébergement, entrez un nom pour le plan App Service à utiliser pour l’hébergement de l’application web.
Sélectionnez Revoir + créer.
Dans la page Vérifier + créer, sélectionnez Créer.
Le déploiement peut prendre quelques minutes. Sélectionnez Alertes (icône représentant une cloche) dans le portail, puis Accéder au groupe de ressources.
Dans la page Groupe de ressources, dans la liste des ressources, sélectionnez l’application web (contosoegriviewer dans l’exemple suivant) que vous avez créée.
Dans la page App Service de votre application web, sélectionnez l’URL pour accéder au site web. L’URL doit être au format suivant :
https://<your-site-name>.azurewebsites.net
.Confirmez que vous voyez le site, mais qu’aucun événement n’a encore été posté sur celui-ci.
S’abonner à une rubrique personnalisée
Vous vous abonnez à une rubrique Event Grid pour indiquer à Event Grid les événements qui vous intéressent, et où les envoyer.
Maintenant, dans la page Rubrique Event Grid de votre rubrique personnalisée, sélectionnez + Abonnement aux événements sur la barre d’outils.
Dans la page Créer un abonnement aux événements, effectuez les étapes suivantes :
Entrez un nom pour l’abonnement aux événements.
Sélectionnez Webhook pour Type de point de terminaison.
Choisissez Sélectionner un point de terminaison.
Pour le point de terminaison du webhook, indiquez l’URL de votre application web et ajoutez
api/updates
à l’URL de la page d’accueil. Sélectionnez Confirmer la sélection.Dans la page Créer un abonnement aux événements, sélectionnez Créer.
Affichez à nouveau votre application web, et notez qu’un événement de validation d’abonnement lui a été envoyé. Sélectionnez l’icône en forme d’œil pour développer les données d’événements. Event Grid envoie l’événement de validation pour que le point de terminaison puisse vérifier qu’il souhaite recevoir des données d’événement. L’application web inclut du code pour valider l’abonnement.
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. Utilisez Azure CLI ou PowerShell pour envoyer un événement de test à votre rubrique personnalisée. En règle générale, une application ou un service Azure envoie les données d’événements.
Le premier exemple utilise Azure CLI. Il obtient l’URL et la clé de la rubrique personnalisée, ainsi que les exemples de données d’événements. Utilisez le nom de votre rubrique personnalisée pour <topic name>
. Des exemples de données d’événement sont créés. L’élément data
du fichier JSON est la charge utile de l’événement. N’importe quel fichier JSON bien construit peut être placé dans ce champ. Vous pouvez aussi utiliser le champ objet pour un routage et un filtrage avancés. CURL est un utilitaire qui envoie des requêtes HTTP.
Azure CLI
Dans le portail Azure, sélectionnez Cloud Shell. Cloud Shell s’ouvre dans le volet inférieur du navigateur web.
Sélectionnez Bash dans l’angle supérieur gauche de la fenêtre Cloud Shell.
Exécutez la commande suivante afin d’obtenir le point de terminaison pour la rubrique : Après avoir copié et collé la commande, et avant de l’exécuter, mettez à jour le nom de la rubrique et le nom du groupe de ressources. Vous publiez des exemples d’événements sur ce point de terminaison de rubrique.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --output tsv)
Exécutez la commande suivante afin d’obtenir la clé pour la rubrique personnalisée : Après avoir copié et collé la commande, et avant de l’exécuter, mettez à jour le nom de la rubrique et le nom du groupe de ressources. Il s’agit de la clé primaire de la rubrique Event Grid. Pour récupérer cette clé à partir du portail Azure, basculez vers l’onglet Clés d’accès de la page Rubrique Event Grid. Pour être en mesure de poster un événement dans une rubrique personnalisée, vous avez besoin de la clé d’accès.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output tsv)
Copiez l’instruction suivante avec la définition de l’événement, puis appuyez sur Entré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"} ]'
Exécutez la commande Curl suivante pour publier l’événement : Dans la commande, l’en-tête
aeg-sas-key
est défini sur la clé d’accès que vous avez obtenue précédemment.curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Azure PowerShell
Le deuxième exemple utilise PowerShell pour effectuer des étapes similaires.
Dans le portail Azure, sélectionnez Cloud Shell (ou accédez à
https://shell.azure.com/
). Cloud Shell s’ouvre dans le volet inférieur du navigateur web.Dans Cloud Shell, sélectionnez PowerShell en haut à gauche de la fenêtre Cloud Shell. Consultez l’exemple d’image de fenêtre Cloud Shell dans la section Azure CLI.
Définissez les variables suivantes. Après avoir copié et collé la commande, et avant de l’exécuter, mettez à jour le nom de la rubrique et le nom du groupe de ressources :
Groupe de ressources :
$resourceGroupName = "<resource group name>"
Nom de la rubrique Event Grid :
$topicName = "<topic name>"
Exécutez les commandes suivantes afin d’obtenir le point de terminaison et les clés pour la rubrique :
$endpoint = (Get-AzEventGridTopic -ResourceGroupName $resourceGroupName -Name $topicName).Endpoint $keys = Get-AzEventGridTopicKey -ResourceGroupName $resourceGroupName -Name $topicName
Préparez l’événement. Copiez et exécutez les instructions dans la fenêtre Cloud Shell.
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct body using Hashtable $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert event body from Hashtable to JSON Object #Append square brackets to the converted JSON payload since they are expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"
Utilisez l’applet de commande Invoke-WebRequest pour envoyer l’événement.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Vérifier dans la visionneuse Event Grid
Vous avez déclenché l’événement, et Event Grid a envoyé le message au point de terminaison configuré lors de l’abonnement. Affichez votre application web pour voir l’événement que vous venez d’envoyer.
Nettoyer les ressources
Si vous envisagez de continuer à utiliser cet événement, ne supprimez pas les ressources créées dans cet article. Dans le cas contraire, supprimez les ressources créées avec cet article.
Sélectionnez Groupes de ressources dans le menu de gauche. Si vous ne voyez pas cette option dans le menu de gauche, sélectionnez Tous les services dans ce menu, puis sélectionnez Groupes de ressources.
Sélectionnez le groupe de ressources pour lancer la page Groupe de ressources.
Sélectionnez Supprimer le groupe de ressources sur la barre d’outils.
Confirmez la suppression en entrant le nom du groupe de ressources, puis sélectionnez Supprimer.
L’autre groupe de ressources que vous voyez dans l’image a été créé et utilisé par la fenêtre Cloud Shell. Supprimez-le si vous n’envisagez pas d’utiliser la fenêtre Cloud Shell.
Étapes suivantes
Maintenant que vous savez créer des rubriques et des abonnements d’événements personnalisés, vous pouvez en apprendre davantage sur Event Grid et ce qu’il peut vous offrir :
- À propos d’Event Grid
- Acheminer des événements de stockage Blob Azure vers un point de terminaison Web personnalisé
- Surveiller les modifications d’une machine virtuelle avec Azure Event Grid et Azure Logic Apps
- Diffuser en continu des Big Data dans un entrepôt de données
Consultez les exemples suivants pour en savoir plus sur la publication d’événements sur Event Grid et leur consommation avec différents langages de programmation.