Partager via


Tutoriel : Répondre aux événements Azure Service Bus reçus via Azure Event Grid à l’aide d’Azure Functions

Dans ce tutoriel, vous allez apprendre à répondre aux événements Azure Service Bus qui sont reçus via Azure Event Grid à l’aide d’Azure Functions et d’Azure Logic Apps.

Dans ce tutoriel, vous allez apprendre à :

  • Création d’un espace de noms Service Bus
  • Préparer un exemple d’application pour envoyer des messages
  • Envoyer des messages à la rubrique Service Bus
  • Recevoir des messages à l’aide de Logic Apps
  • Configurer une fonction de test sur Azure
  • Connecter la fonction et l’espace de noms via Event Grid
  • Recevoir des messages à l’aide d’Azure Functions

Prérequis

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.

Création d’un espace de noms Service Bus

Suivez les instructions de ce tutoriel : Démarrage rapide : utiliser le portail Azure pour créer une rubrique Service Bus et des abonnements à cette rubrique pour effectuer les tâches suivantes :

  • Créer un espace de noms Service Bus premium.
  • Obtenir la chaîne de connexion.
  • Créer une rubrique Service Bus.
  • Créer un abonnement à la rubrique. Vous n’avez besoin que d’un seul abonnement dans ce tutoriel. Il n’est donc pas nécessaire de créer des abonnements S2 et S3

Envoyer des messages à la rubrique Service Bus

Lors de cette étape, vous allez utiliser un exemple d’application pour envoyer des messages à la rubrique Service Bus créée à l’étape précédente.

  1. Clonez le dépôt GitHub azure-service-bus ou téléchargez et décompressez le fichier zip.

  2. Dans Visual Studio, accédez au dossier \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2, puis ouvrez le fichier SBEventGridIntegration.sln.

  3. Dans la fenêtre Explorateur de solutions, développez le projet MessageSender, puis sélectionnez Program.cs.

  4. Remplacez <SERVICE BUS NAMESPACE - CONNECTION STRING> par la chaîne de connexion à votre espace de noms Service Bus et <TOPIC NAME> par le nom de la rubrique.

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. Générez et exécutez le programme pour envoyer cinq messages de test (const int numberOfMessages = 5;) à la rubrique Service Bus.

    Sortie d’application console

Autres composants requis

Installez Visual Studio 2022 et intégrez la charge de travail de Développement Azure. Cette charge de travail comprend les outils Azure Functions dont vous avez besoin pour créer, générer et déployer des projets Azure Functions dans Visual Studio.

Déployer l’application de fonction

Notes

Pour plus d’informations sur la création et le déploiement d’une application Azure Functions, consultez Développer des fonctions Azure Functions avec Visual Studio.

  1. Ouvrez le fichier ReceiveMessagesOnEvent.cs à partir du projet FunctionApp1 de la solution SBEventGridIntegration.sln.

  2. Remplacez <SERVICE BUS NAMESPACE - CONNECTION STRING> par la chaîne de connexion de votre espace de noms Service Bus. Elle doit être identique à celle que vous avez utilisée dans le fichier Program.cs du projet MessageSender de la même solution.

  3. Cliquez avec le bouton droit sur FunctionApp1, puis sélectionnez Publier.

  4. Dans la page Publier, sélectionnez Démarrer. Ces étapes peuvent être différentes de celles que vous voyez, mais le processus de publication doit être similaire.

  5. Dans l’Assistant Publication, dans la page Cible, sélectionnez Azure pour Cible.

  6. Dans la page Cible spécifique, sélectionnez Application de fonction Azure (Windows) .

  7. Sur la page Instance de Functions, sélectionnez Créer.

    Capture d’écran illustrant le bouton Ajouter une fonction de la boîte de dialogue Publier de Visual Studio.

  8. Dans la page Application de fonction (Windows) , procédez comme suit :

    1. Entrez un nom pour l’application de fonction.
    2. Sélectionnez un abonnement Azure.
    3. Sélectionnez un groupe de ressources existant ou créez-en un. Pour ce tutoriel, sélectionnez le groupe de ressources contenant l’espace de noms Service Bus.
    4. Sélectionnez un type de plan pour App Service.
    5. Sélectionnez un emplacement. Sélectionnez le même emplacement que l’espace de noms Service Bus.
    6. Sélectionnez un compte de stockage Azure existant ou sélectionnez Nouveau pour créer un compte de stockage à utiliser par l’application Functions.
    7. Pour Application Insights, sélectionnez une instance Application Insights existante à associer à la fonction Azure ou créez-en une.
    8. Sélectionnez Créer pour créer l’application Functions.
  9. De retour dans la page Instance de Functions de l’Assistant Publication, sélectionnez Terminer.

  10. Dans la page Publier de Visual Studio, sélectionnez Publier pour publier l’application Functions sur Azure.

  11. Dans la fenêtre Sortie, vérifiez que les opérations de génération et de publication ont réussi.

    Si la publication échoue avec un problème d’authentification, vérifiez que l’option Publication d’authentification de base SCM.est activée pour l’application Azure Functions.

    Capture d’écran illustrant l’activation de l’option Publication de l’authentification de base du SCM.

  12. Maintenant, sur la page Publier, dans la section Hébergement, sélectionnez ... (points de suspension), et sélectionnez Ouvrir dans le Portail Azure.

    Capture d’écran illustrant la page Publier dans Visual Studio.

  13. Dans le Portail Azure, sur la page Application de fonction, sélectionnez EventGridTriggerFunction dans la liste. Nous vous recommandons d’utiliser le déclencheur Event Grid avec Azure Functions, car il présente quelques avantages par rapport à l’utilisation du déclencheur HTTP. Pour plus d’informations, consultez Fonction Azure en tant que gestionnaire d’événements pour des événements Event Grid.

    Capture d’écran montrant la page Fonctions avec la fonction de déclenchement Event Grid.

  14. Sur la page Fonction de EventGridTriggerFunction, passez à l’ongletAppels.

    Capture d’écran illustrant la page Appels d’une fonction Déclencheur Event Grid.

    Laissez cette page ouverte sous un onglet de votre navigateur web. Vous actualiserez plus tard cette page pour voir les invocations liées à cette fonction.

Connecter la fonction et l’espace de noms Service Bus via Event Grid

Dans cette section, vous allez relier la fonction et l’espace de noms Service Bus à l’aide du portail Azure.

Pour créer un abonnement Azure Event Grid, effectuez les étapes suivantes :

  1. Dans le Portail Azure, accédez à votre espace de noms Service Bus puis, dans le volet gauche, sélectionnez Événements. La fenêtre de votre espace de noms s’ouvre, avec deux abonnements Event Grid affichés dans le volet droit.

    Capture d’écran illustrant la page Événements d’un espace de noms Service Bus.

  2. Sélectionnez + Abonnement aux événements dans la barre d’outils.

  3. Dans la page Créer un abonnement aux événements, effectuez les étapes suivantes :

    1. Entrez un nom pour l’abonnement.

    2. Entrez un nom pour la rubrique système. Les rubriques sur le système sont des rubriques créées pour les ressources Azure, telles que le compte de stockage Azure et Azure Service Bus. Pour en savoir plus sur les rubriques système, consultez Vue d’ensemble des rubriques système.

    3. Sélectionnez Fonction Azure pour Type de point de terminaison, puis choisissez Configurer un point de terminaison.

      Capture d’écran illustrant la page Créer un abonnement aux événements pour un espace de noms Service Bus.

    4. Dans la page Sélectionner une fonction Azure, sélectionnez l’abonnement, le groupe de ressources, l’application de fonction, l’emplacement et la fonction, puis sélectionnez Confirmer la sélection.

      Capture d’écran illustrant la sélection d’un point de terminaison d’une fonction Azure.

    5. Dans la page Créer un abonnement aux événements, basculez vers l’onglet Filtres, puis effectuez les tâches suivantes :

      1. Sélectionnez Activer le filtrage d’objet.

      2. Saisissez le nom de l’abonnement à la rubrique Service Bus que vous avez créée précédemment. Dans la capture d’écran suivante, le nom de l’abonnement est mysub.

      3. Cliquez sur le bouton Créer.

        Capture d’écran illustrant la page Filtres d’un abonnement à un événement.

  4. Passez dans l’onglet Abonnements aux événements de la page Événements et vérifiez que vous voyez l’abonnement aux événements dans la liste.

    Capture d’écran illustrant les abonnements aux événements pour l’espace de noms Service Bus.

Superviser l’application Functions

Les messages que vous avez envoyés à la rubrique Service Bus précédemment sont transférés à l’abonnement (S1). Event Grid transfère les messages au niveau de l’abonnement à la fonction Azure. Au cours de cette étape du tutoriel, vous vérifiez que la fonction a été appelée et vous affichez les messages d’information journalisés.

  1. Sur la page de votre application de fonction Azure, basculez sur l’onglet Appels s’il n’est pas déjà activé. Vous devez voir une entrée pour chaque message posté dans la rubrique Service Bus. Si ce n’est pas le cas, actualisez la page au bout de quelques minutes.

    Capture d’écran illustrant la page Appels pour la fonction après les Appels.

  2. Sélectionnez l’invocation dans la liste pour afficher les détails.

    Capture d’écran illustrant les détails des Appels de la fonction.

    Pour consulter les informations de journalisation au fur et à mesure de l’envoi des messages, vous pouvez également utiliser l’onglet Journaux. Un délai est possible. Il faut donc attendre quelques minutes avant de voir les messages consignés dans le journal.

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

Dépanner

Si vous ne voyez aucune invocation de fonction après avoir attendu un certain temps et actualisé la page, procédez comme suit :

  1. Vérifiez que les messages ont atteint la rubrique Service Bus. Consultez le compteur des messages entrants dans la page Rubrique Service Bus. En l’occurrence, comme j’ai exécuté l’application MessageSender à deux reprises, je vois 10 messages (5 messages pour chaque exécution).

    Capture d’écran illustrant la page Rubrique Service Bus – messages entrants.

  2. Vérifiez qu’il n’y a aucun message actif au niveau de l’abonnement Service Bus. Si vous ne voyez pas d’événements dans cette page, vérifiez que la page Abonnement Service Bus n’affiche aucun Nombre de messages actifs. Si le nombre de ce compteur est supérieur à zéro, les messages au niveau de l’abonnement ne sont pas transmis à la fonction de gestionnaire (gestionnaire d’abonnement aux événements) pour une raison quelconque. Vérifiez que vous avez correctement configuré l’abonnement aux événements.

    Capture d’écran illustrant le nombre de messages actifs dans l’abonnement Service Bus.

  3. Vous pouvez également voir les événements remis dans la page Événements de l’espace de noms Service Bus.

    Capture d’écran illustrant le nombre d’événements remis.

  4. Vous pouvez également voir que les événements sont remis dans la page Abonnement aux événements. Vous pouvez accéder à cette page en sélectionnant l’abonnement aux événements dans la page Événements.

    Capture d’écran illustrant la page d’abonnement aux événements – Événements remis.