Guide de démarrage rapide : Router des événements personnalisés vers une fonction Azure à l’aide d’Event Grid
Azure Event Grid est un service de routage d’événements pour le cloud. Azure Functions est l’un des gestionnaires d’événements pris en charge.
Dans ce guide de démarrage rapide, vous utilisez le Portail Azure pour créer une rubrique personnalisée, vous abonner à cette rubrique et déclencher l’événement pour afficher le résultat. Vous envoyez les événements à une fonction Azure.
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Créer une fonction avec un déclencheur Event Grid à l’aide de Visual Studio Code
Dans cette section, vous utilisez Visual Studio Code pour créer une fonction avec un déclencheur Event Grid.
Prérequis
- Visual Studio Code installé sur l’une des plateformes prises en charge
- Extension Azure Functions
Créer une fonction
Ouvrez Visual Studio Code.
Dans la barre de gauche, sélectionnez Azure.
Dans le volet gauche, dans la section Espace de travail, cliquez sur le bouton Azure Functions dans la barre de commandes, puis sélectionnez Créer une fonction.
Sélectionnez un dossier dans lequel vous souhaitez enregistrer le code de fonction.
Pour la commande Créer un projet, sous Langage, sélectionnez C#, puis tapez sur la touche Entrée.
Sous Runtime .NET, sélectionnez .NET 8.0 Isolé LTS, puis tapez sur la touche Entrée.
Sous Modèle de la fonction, sélectionnez Déclencheur Azure Event Grid, puis tapez sur la touche Entrée.
Sous Nom de la fonction, entrez un nom pour votre fonction, puis tapez sur la touche Entrée.
Sous Espace de noms, entrez un nom pour l’espace de noms de la fonction, puis tapez sur la touche Entrée.
Ouvrez le projet dans la fenêtre actuelle ou dans une nouvelle fenêtre, ou ajoutez-le à un espace de travail.
Attendez que la fonction soit créée. L’état de la création de la fonction apparaît dans le coin inférieur droit.
Affichez le code du fichier YourFunctionName.cs, en particulier la méthode
Run
. Il imprime les informations à l’aide d’un enregistreur d’événements.[Function(nameof(MyEventGridTriggerFunc))] public void Run([EventGridTrigger] CloudEvent cloudEvent) { _logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject); }
Déployer la fonction sur Azure
Cliquez sur le bouton Azure dans la barre de gauche si le volet Azure n’est pas déjà ouvert.
Pointez la souris sur votre projet et cliquez sur le bouton Déployer dans Azure.
Dans la liste déroulante de la palette de commandes, sélectionnez + Créer une application de fonction, puis tapez sur la touche Entrée.
Sous Nom, entrez un nom global unique pour la nouvelle application de fonction, puis tapez sur la touche Entrée.
Sous Pile d’exécution, sélectionnez .NET 8 Isolé.
Sous Emplacement pour vos ressources Azure, sélectionnez une région proche de vous.
L’état de la création de l’application de fonction apparaît sous l’onglet AZURE du volet inférieur. Une fois l’application de fonction créée, l’état du déploiement de la fonction que vous avez créée localement sur l’application de fonction s’affiche.
Une fois le déploiement réussi, développez le message Opération de création d’une application de fonction réussie, puis sélectionnez Cliquez pour afficher la ressource. Confirmez que votre fonction est sélectionnée dans la section Ressources du volet gauche.
Cliquez avec le bouton droit sur votre fonction, puis sélectionnez Ouvrir dans le portail.
Connectez-vous à Azure si nécessaire et vérifiez que la page Application de fonction s’affiche pour votre fonction.
Dans le volet inférieur, sélectionnez votre fonction.
Basculez vers l’onglet Journaux. Maintenez cet onglet ouvert afin de voir les messages consignés lorsque vous envoyez un événement à une rubrique Event Grid plus loin dans ce tutoriel.
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.
Dans un nouvel onglet de la fenêtre du navigateur web, connectez-vous au Portail Azure.
Dans la barre de recherche de la rubrique, recherchez Rubriques Event Grid, puis sélectionnez Rubriques Event Grid.
Sur la page Rubriques, sélectionnez + Créer dans la barre de commandes.
Dans le volet Créer une rubrique, procédez comme suit :
Pour Abonnement, sélectionnez votre abonnement Azure.
Sous Groupe de ressources, sélectionnez le même groupe de ressources que dans les étapes précédentes.
Sous Nom, entrez un nom unique pour la rubrique personnalisée. Le nom de la rubrique doit être unique, car une entrée DNS (Domain Name System) la représente.
N’utilisez pas le nom indiqué dans l’image d’exemple. Au lieu de cela, créez votre propre nom. Il doit comporter de 3 à 50 caractères et contenir uniquement les valeurs a-z, A-Z, 0-9 et un trait d’union (
-
).Sous Région, sélectionnez un emplacement pour la rubrique Event Grid.
Sélectionnez Revoir + créer.
Sous l’onglet Vérifier + créer, passez en revue les paramètres, puis sélectionnez Créer.
Une fois la rubrique personnalisée créée, sélectionnez le lien Accéder à la ressource pour ouvrir la page Rubrique Event Grid de cette rubrique.
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.
Sur la page Rubrique Event Grid de votre rubrique personnalisée, sélectionnez + Abonnement à des événements sur la barre d’outils.
Dans le volet Créer un abonnement à des événements, effectuez les étapes suivantes :
Sous Nom, entrez un nom pour l’abonnement à des événements.
Pour Schéma d’Événement, sélectionnez Schéma Cloud Event v1.0.
Comme Type de point de terminaison, sélectionnez Fonction Azure.
Sélectionnez Configurer un point de terminaison.
Dans le volet Sélectionner une fonction Azure, effectuez les étapes suivantes :
Sous Abonnement, sélectionnez l’abonnement Azure qui a la fonction.
Sous Groupe de ressources, sélectionnez le groupe de ressources qui a la fonction.
Sous Application de fonction, sélectionnez votre application de fonction.
Sous Fonction, sélectionnez la fonction dans l’application de fonction.
Sélectionnez Confirmer la sélection.
Cette étape est facultative, mais recommandée pour les scénarios de production. Dans le volet Créer un abonnement à des événements, accédez à l’onglet Fonctionnalités supplémentaires et définissez des valeurs pour Nb max. d’événements par lot et Taille de lot par défaut en kilo-octets.
Le traitement par lot peut vous offrir un débit élevé. Pour Nombre maximal d’événements par lot, définissez le nombre maximal d’événements qu’un abonnement inclura dans un lot. L’option Taille de lot par défaut en kilo-octets définit la limite supérieure par défaut de la taille de lot, qui peut être dépassée si un seul événement est supérieur à ce seuil.
Dans le volet Créer un abonnement à des événements, sélectionnez Créer.
Envoyer un événement à votre rubrique
Déclenchez maintenant un événement pour voir comment Event Grid distribue le message à votre point de terminaison. Utilisez Azure CLI ou Azure 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 topicname
. 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.
L’outil cURL envoie des requêtes HTTP. Dans cet article, vous utilisez cURL pour envoyer l’événement à la rubrique personnalisée.
Azure CLI
Dans le portail Azure, sélectionnez Cloud Shell. Si vous êtes en mode Azure PowerShell, sélectionnez Basculer vers Bash.
Définissez les variables
topicname
etresourcegroupname
qui seront utilisées dans les commandes.Remplacez
TOPICNAME
par le nom de votre sujet Event Grid.topicname="TOPICNAME"
Remplacez par
RESOURCEGROUPNAME
le nom du groupe de ressources Azure qui contient la rubrique Event Grid.resourcegroupname="RESOURCEGROUPNAME"
Utilisez la commande suivante pour obtenir le point de terminaison de la rubrique. Après avoir copié et collé la commande, mettez à jour le nom de la rubrique et le nom du groupe de ressources avant d’exécuter la commande.
endpoint=$(az eventgrid topic show --name $topicname -g $resourcegroupname --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, mettez à jour le nom de la rubrique et le nom du groupe de ressources avant d’exécuter la commande.
key=$(az eventgrid topic key list --name $topicname -g $resourcegroupname --query "key1" --output tsv)
Copiez l’instruction suivante avec la définition d’événement, puis tapez sur la touche 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 :
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
Vérifiez que le message de la fonction apparaît sous l’onglet Journaux d’activité de votre fonction sur le Portail Azure.
Azure PowerShell
Le deuxième exemple utilise Azure PowerShell pour effectuer des étapes similaires.
Sur le Portail Azure, sélectionnez Cloud Shell (ou accédez à la page Azure Cloud Shell). Dans le coin supérieur gauche de la fenêtre Cloud Shell, sélectionnez Basculer vers PowerShell.
Définissez les variables suivantes. Après avoir copié et collé chaque commande, mettez à jour le nom de la rubrique et le nom du groupe de ressources avant d’exécuter la commande.
$resourceGroupName = "RESOURCEGROUPNAME"
$topicName = "TOPICNAME"
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 ces instructions dans la fenêtre Cloud Shell :
$eventID = Get-Random 99999 #Date format should be SortableDateTimePattern (ISO 8601) $eventDate = Get-Date -Format s #Construct the body by using a hash table $htbody = @{ id= $eventID eventType="recordInserted" subject="myapp/vehicles/motorcycles" eventTime= $eventDate data= @{ make="Ducati" model="Monster" } dataVersion="1.0" } #Use ConvertTo-Json to convert the event body from a hash table to a JSON object #Append square brackets to the converted JSON payload because they're expected in the event's JSON payload syntax $body = "["+(ConvertTo-Json $htbody)+"]"
Utilisez le cmdlet
Invoke-WebRequest
pour envoyer l’événement :Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Vérifiez que le message de la fonction apparaît sous l’onglet Journaux d’activité de votre fonction sur le Portail Azure.
Vérifier que la fonction a reçu l’événement
Vous avez déclenché l’événement, et Event Grid a envoyé le message au point de terminaison que vous avez configuré lors de l’abonnement. Vous pouvez maintenant vérifier si la fonction l’a reçu.
Sur la page Surveiller de votre fonction, recherchez un appel.
Sélectionnez l’appel pour afficher les détails.
Vous pouvez également utiliser l’onglet Journaux d’activité dans le volet droit pour voir les messages journalisés lorsque vous publiez des événements sur le point de terminaison de la rubrique.
Nettoyer les ressources
Si vous envisagez de continuer à utiliser cet événement, ne supprimez pas les ressources que vous avez créées dans cet article. Dans le cas contraire, supprimez les ressources que vous avez créées au cours de cet article.
Dans le menu de gauche, sélectionnez Groupes de ressources.
Vous pouvez également sélectionner Tous les services dans le menu de gauche, puis sélectionner Groupes de ressources.
Sélectionnez le groupe de ressources pour ouvrir le volet qui affiche ses détails.
Dans la barre d’outils, sélectionnez Supprimer le groupe de ressources.
Confirmez la suppression en entrant le nom du groupe de ressources, puis sélectionnez Supprimer.
La fenêtre Cloud Shell a créé et utilisé l’autre groupe de ressources qui apparaît sur la page Groupes de ressources. Supprimez ce groupe de ressources si vous ne prévoyez pas d’utiliser la fenêtre Cloud Shell ultérieurement.
Contenu connexe
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 :
- À propos d’Event Grid
- Router des événements 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
Pour en savoir plus sur la publication d’événements vers Event Grid et la consommation d’événements à partir d’Event Grid à l’aide de différents langages de programmation, consultez les exemples suivants :