Share 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. Dans la page Instance de Functions, sélectionnez Créer une instance d’Azure Functions.

    Image du bouton Ajouter une fonction dans la boîte de dialogue Visual Studio - Publier.

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

    Publier l’application Functions

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

  12. Maintenant, dans la page Publier, dans la section Hébergement, sélectionnez ... (points de suspension), puis Gérer dans le portail Azure.

  13. Dans le portail Azure, dans la page Application de fonction, sélectionnez Fonctions dans le menu de gauche, puis vérifiez que vous voyez deux fonctions :

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

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

  15. Dans la page Fonction pour EventGridTriggerFunction, sélectionnez Superviser dans le menu de gauche.

  16. Sélectionnez Configurer pour configurer Application Insights afin de capturer le journal d’invocations. Vous utilisez cette page pour superviser les exécutions de fonction lors de la réception d’événements Service Bus à partir d’Event Grid.

  17. Dans la page Application Insights, entrez un nom pour la ressource, sélectionnez un emplacement pour celle-ci, puis cliquez sur OK.

  18. Sélectionnez la fonction EventGridTriggerFunction en haut (menu de navigation) pour revenir à la page Fonction.

  19. Vérifiez que vous êtes dans la page Superviser.

    Page Superviser pour la fonction avant les invocations de fonction

    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.

    Service Bus - page d’événements

  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 Sélectionner un point de terminaison.

      Service Bus - abonnement Event Grid

    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.

      Fonction - sélectionner le point de terminaison

    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. Entrez le nom de l’abonnement dans la rubrique Service Bus (S1) que vous avez créée précédemment.

      3. Cliquez sur le bouton Créer.

        Filtre d’abonnement aux événements

  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.

    Abonnement aux événements dans la liste

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. Dans la page de votre application de fonction Azure, basculez vers l’onglet Superviser 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.

    Page Superviser pour la fonction après les invocations

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

    Détails de l’invocation de la fonction

    Vous pouvez également utiliser l’onglet Journaux de la page Superviser pour voir les informations de journalisation au fur et à mesure que les messages sont envoyés. Il peut y avoir un peu de délai, patientez quelques minutes pour voir les messages journalisés.

    Journaux d’activité de fonction

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

    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.

    Nombre de messages actifs au niveau de 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.

    Page événements : é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.

    Page Abonnement aux événements : événements remis

Étapes suivantes