Partage via


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

Créer une fonction

  1. Ouvrez Visual Studio Code.

  2. Dans la barre de gauche, sélectionnez Azure.

  3. 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.

    Capture d’écran montrant l’onglet Azure de Visual Studio Code avec la commande de menu permettant de créer une fonction.

  4. Sélectionnez un dossier dans lequel vous souhaitez enregistrer le code de fonction.

  5. Pour la commande Créer un projet, sous Langage, sélectionnez C#, puis tapez sur la touche Entrée.

    Capture d’écran montrant la sélection de C# comme langage pour le développement d’une fonction Azure.

  6. Sous Runtime .NET, sélectionnez .NET 8.0 Isolé LTS, puis tapez sur la touche Entrée.

  7. Sous Modèle de la fonction, sélectionnez Déclencheur Azure Event Grid, puis tapez sur la touche Entrée.

  8. Sous Nom de la fonction, entrez un nom pour votre fonction, puis tapez sur la touche Entrée.

  9. Sous Espace de noms, entrez un nom pour l’espace de noms de la fonction, puis tapez sur la touche Entrée.

  10. Ouvrez le projet dans la fenêtre actuelle ou dans une nouvelle fenêtre, ou ajoutez-le à un espace de travail.

  11. Attendez que la fonction soit créée. L’état de la création de la fonction apparaît dans le coin inférieur droit.

    Capture d’écran montrant l’état de la création de la fonction.

  12. 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

  1. Cliquez sur le bouton Azure dans la barre de gauche si le volet Azure n’est pas déjà ouvert.

  2. Pointez la souris sur votre projet et cliquez sur le bouton Déployer dans Azure.

    Capture d’écran montrant le bouton de déploiement dans Azure.

  3. 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.

  4. Sous Nom, entrez un nom global unique pour la nouvelle application de fonction, puis tapez sur la touche Entrée.

  5. Sous Pile d’exécution, sélectionnez .NET 8 Isolé.

  6. Sous Emplacement pour vos ressources Azure, sélectionnez une région proche de vous.

  7. 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.

  8. 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.

  9. Cliquez avec le bouton droit sur votre fonction, puis sélectionnez Ouvrir dans le portail.

    Capture d’écran montrant les sélections permettant d’ouvrir une fonction dans le portail.

  10. Connectez-vous à Azure si nécessaire et vérifiez que la page Application de fonction s’affiche pour votre fonction.

  11. Dans le volet inférieur, sélectionnez votre fonction.

    Capture d’écran illustrant la sélection d’une fonction Azure sur la page Application de fonction.

  12. 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.

    Capture d’écran montrant l’onglet Journaux d’activité d’une fonction sur le Portail Azure.

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.

  1. Dans un nouvel onglet de la fenêtre du navigateur web, connectez-vous au Portail Azure.

  2. Dans la barre de recherche de la rubrique, recherchez Rubriques Event Grid, puis sélectionnez Rubriques Event Grid.

    Capture d’écran montrant la sélection des rubriques Event Grid.

  3. Sur la page Rubriques, sélectionnez + Créer dans la barre de commandes.

    Capture d’écran montrant le bouton permettant de créer une rubrique Event Grid.

  4. Dans le volet Créer une rubrique, procédez comme suit :

    1. Pour Abonnement, sélectionnez votre abonnement Azure.

    2. Sous Groupe de ressources, sélectionnez le même groupe de ressources que dans les étapes précédentes.

    3. 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 (-).

    4. Sous Région, sélectionnez un emplacement pour la rubrique Event Grid.

    5. Sélectionnez Revoir + créer.

      Capture d’écran montrant le volet de création d’une rubrique.

    6. Sous l’onglet Vérifier + créer, passez en revue les paramètres, puis sélectionnez Créer.

  5. 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.

    Capture d’écran montrant la page d’une rubrique personnalisée Event Grid.

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.

  1. Sur la page Rubrique Event Grid de votre rubrique personnalisée, sélectionnez + Abonnement à des événements sur la barre d’outils.

    Capture d’écran montrant le bouton permettant d’ajouter un abonnement à des événements dans la barre d’outils.

  2. Dans le volet Créer un abonnement à des événements, effectuez les étapes suivantes :

    1. Sous Nom, entrez un nom pour l’abonnement à des événements.

    2. Pour Schéma d’Événement, sélectionnez Schéma Cloud Event v1.0.

    3. Comme Type de point de terminaison, sélectionnez Fonction Azure.

    4. Sélectionnez Configurer un point de terminaison.

      Capture d’écran montrant les valeurs de l’abonnement à des événements.

    5. Dans le volet Sélectionner une fonction Azure, effectuez les étapes suivantes :

      1. Sous Abonnement, sélectionnez l’abonnement Azure qui a la fonction.

      2. Sous Groupe de ressources, sélectionnez le groupe de ressources qui a la fonction.

      3. Sous Application de fonction, sélectionnez votre application de fonction.

      4. Sous Fonction, sélectionnez la fonction dans l’application de fonction.

      5. Sélectionnez Confirmer la sélection.

        Capture d’écran montrant le volet permettant de sélectionner une fonction Azure créée précédemment.

    6. 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.

      Capture d’écran montrant les paramètres de traitement par lot pour un abonnement à des événements.

    7. 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

  1. Dans le portail Azure, sélectionnez Cloud Shell. Si vous êtes en mode Azure PowerShell, sélectionnez Basculer vers Bash.

    Capture d’écran montrant la fenêtre Bash dans Azure Cloud Shell.

  2. Définissez les variables topicname et resourcegroupname 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"
    
  3. 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)
    
  4. 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)
    
  5. 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"} ]'
    
  6. Exécutez la commande cURL suivante pour publier l’événement :

    curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
    
  7. Vérifiez que le message de la fonction apparaît sous l’onglet Journaux d’activité de votre fonction sur le Portail Azure.

    Capture d’écran montrant l’onglet Journaux d’activité d’une fonction Azure.

Azure PowerShell

Le deuxième exemple utilise Azure PowerShell pour effectuer des étapes similaires.

  1. 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.

  2. 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"
    
  3. 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
    
  4. 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)+"]"
    
  5. Utilisez le cmdlet Invoke-WebRequest pour envoyer l’événement :

    Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
    
  6. Vérifiez que le message de la fonction apparaît sous l’onglet Journaux d’activité de votre fonction sur le Portail Azure.

    Capture d’écran montrant l’onglet Journaux d’activité d’une fonction.

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.

  1. Sur la page Surveiller de votre fonction, recherchez un appel.

    Capture d’écran montrant l’onglet Appels de la page Surveiller.

  2. Sélectionnez l’appel pour afficher les détails.

    Capture d’écran montrant les détails de l’appel.

    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.

    Capture d’écran montrant la vue Surveiller d’une fonction avec un journal.

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.

  1. Dans le menu de gauche, sélectionnez Groupes de ressources.

    Capture d’écran montrant la page des groupes de ressources

    Vous pouvez également sélectionner Tous les services dans le menu de gauche, puis sélectionner Groupes de ressources.

  2. Sélectionnez le groupe de ressources pour ouvrir le volet qui affiche ses détails.

  3. Dans la barre d’outils, sélectionnez Supprimer le groupe de ressources.

  4. 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.

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 :

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 :