Tutoriel : Répondre aux événements Azure Service Bus reçus via Azure Event Grid avec Azure Logic Apps

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

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

Recevoir des messages à l’aide de Logic Apps

Au cours de cette étape, vous allez créer une application logique Azure qui reçoit des événements Service Bus via Azure Event Grid.

  1. Sélectionnez + Créer une ressource, Intégration, puis Application logique.

    Capture d’écran montrant le menu Créer une ressource - > Intégration -> application logique.

  2. Dans la page Créer une application logique, procédez comme suit :

    1. Sélectionnez votre abonnementAzure.
    2. Sélectionnez Utiliser l’existant pour Groupe de ressources, puis le groupe de ressources que vous avez utilisé pour d’autres ressources (telles que la fonction Azure ou l’espace de noms Service Bus) créées précédemment.
    3. Entrez le nom de l’application logique.
    4. Sélectionnez la Région de l’application logique.
    5. Pour Type de plan, sélectionnez Consommation.
    6. Sélectionnez Vérifier + créer. Capture d’écran montrant la page Créer une application logique.
    7. Dans la page Vérifier + créer, sélectionnez Créer pour créer l’application logique.
  3. Dans la page Déploiement terminée, sélectionnez Accéder à la ressource pour accéder à la page de l’application logique.

  4. Dans la page Concepteur Logic Apps, sélectionnez Application logique vide sous Modèles.

Ajouter une étape pour recevoir des messages de Service Bus via Event Grid

  1. Dans la page de l’application logique, sélectionnez le concepteur d’application logique dans le menu de gauche.

  2. Dans le volet droit, sous Modèles, sélectionnez Application logique vide.

    Capture d’écran montrant la page du concepteur d’application logique avec l’option Application logique vide sélectionnée.

  3. Dans le concepteur, procédez comme suit :

    1. Recherchez Event Grid.

    2. Sélectionnez Quand un événement de ressource se produit - Azure Event Grid.

      Capture d’écran montrant le Logic Apps Designer avec le déclencheur Event Grid sélectionné.

  4. Cliquez sur Connexion.

    Capture d’écran montrant le Logic Apps Designer avec le bouton de connexion sélectionné.

  5. Dans la page Se connecter à votre compte, sélectionnez le compte que vous souhaitez utiliser pour vous connecter à Azure. 1.

  6. Dans la page Quand un événement de ressource se produit, effectuez les étapes suivantes :

    1. Sélectionnez votre abonnement Azure.

    2. Pour Type de ressource, sélectionnez Microsoft.ServiceBus.Namespaces.

    3. Pour Nom de la ressource, sélectionnez votre espace de noms Service Bus.

    4. Sélectionnez Ajouter un nouveau paramètre, sélectionnez Filtre de suffixe, puis déplacez le focus en dehors de la liste déroulante.

      Capture d’écran montrant l’ajout d’un nouveau paramètre de filtre suffixe de type.

    5. Pour Filtre de suffixe, entrez le nom de votre abonnement à la rubrique Service Bus.

      Capture d’écran montrant le Logic Apps Designer avec la configuration de connexion pour l’espace de noms Service Bus.

  7. Sélectionnez + Nouvelle étape dans le concepteur et procédez comme suit :

    1. Recherchez Service Bus.

    2. Sélectionnez Service Bus dans la liste.

      Capture d’écran montrant la sélection de Service Bus.

    3. Recherchez Obtenir les messages dans la liste Actions.

    4. Sélectionnez Obtenir des messages à partir d’un abonnement à une rubrique (Peek-lock) .

      Capture d’écran montrant le Logic Apps Designer avec obtenir des messages à partir d’un abonnement de rubrique sélectionné.

    5. Effectuez les étapes suivantes :

      1. Attribuez un nom à cette connexion. Par exemple : Obtenir des messages de l’abonnement à la rubrique.

      2. Vérifiez que le type d’authentification est défini sur Clé d’accès.

      3. Pour la chaîne de connexion, copiez et collez la chaîne de connexion dans l’espace de noms Service Bus que vous avez enregistré précédemment.

      4. Sélectionnez Créer.

        Capture d’écran montrant le Logic Apps Designer avec la chaîne de connexion Service Bus spécifiée.

    6. Sélectionnez votre rubrique et votre abonnement.

      Capture d’écran montrant le Logic Apps Designer avec la rubrique et l’abonnement Service Bus spécifiés.

Ajouter une étape pour traiter et terminer les messages reçus

Dans cette étape, vous allez ajouter des étapes pour envoyer le message reçu dans un e-mail et ensuite le terminer. Dans un scénario réel, vous allez traiter un message dans l’application logique avant de le terminer.

Ajouter une boucle foreach

  1. Sélectionnez + Nouvelle étape.

  2. Recherchez, puis sélectionnez Contrôle.

    Capture d’écran montrant la catégorie Contrôle.

  3. Dans la liste Actions, sélectionnez For each.

    Capture d’écran montrant l’opération ForEach sélectionnée.

  4. Pour Sélectionner une sortie à partir des étapes précédentes (cliquez dans la zone de texte si nécessaire), sélectionnez Corps sous Obtenir des messages à partir d’un abonnement à une rubrique (Peek-lock) .

    Capture d’écran montrant la sélection de For chaque entrée.

Ajouter une étape dans la boucle foreach pour envoyer un e-mail avec le corps du message

  1. Dans la boucle For Each, sélectionnez Ajouter une action.

    Capture d’écran montrant la sélection du bouton Ajouter une action dans la boucle ForEach.

  2. Dans la zone de texte Rechercher des connecteurs et des actions, entrez Office 365.

  3. Sélectionnez Office 365 Outlook dans les résultats de la recherche.

    Capture d’écran montrant la sélection d’Office 365.

  4. Dans la liste d’actions, sélectionnez Envoyer un e-mail (v2) .

    Capture d’écran montrant la sélection de l’opération Envoyer un e-mail.

  5. Sélectionnez Se connecter, puis suivez les étapes pour créer une connexion à Office 365 Outlook.

  6. Dans la fenêtre Envoyer un e-mail (V2) , effectuez les étapes suivantes :

  7. Cliquez dans la zone de texte pour Corps, puis procédez comme suit :

    1. Pour À, entrez une adresse e-mail.

    2. Pour Objet, entrez Message reçu de l’abonnement à la rubrique Service Bus.

    3. Basculez sur l’onglet Expression.

    4. Entrez l’expression suivante :

      base64ToString(items('For_each')?['ContentData'])
      
    5. Cliquez sur OK.

      Capture d’écran montrant l’expression du corps de l’activité Envoyer un e-mail.

Ajouter une autre action dans la boucle foreach pour terminer le message

  1. Dans la boucle For Each, sélectionnez Ajouter une action.

    1. Sélectionnez Service Bus dans la liste Récent.

    2. Sélectionnez Compléter le message dans un abonnement à une rubrique.

      Capture d’écran montrant la sélection de Terminer un message dans un abonnement à une rubrique.

    3. Sélectionnez votre rubrique Service Bus.

    4. Créer un abonnement à la rubrique.

    5. Pour Jeton de verrouillage du message, sélectionnez Jeton de verrouillage à partir du contenu dynamique.

      Capture d’écran montrant le champ de jeton de verrouillage.

  2. Sélectionnez Enregistrer dans la barre d’outils du concepteur Logic Apps pour enregistrer l’application logique.

    Capture d’écran montrant le bouton Enregistrer dans l’application logique conçue.

Tester l'application

  1. Si vous n’avez pas encore envoyé de messages de test à la rubrique, suivez les instructions de la section Envoyer des messages à la rubrique Service Bus.

  2. Basculez vers la page Vue d’ensemble de votre application logique, puis passez à l’onglet Historique des exécutions dans le volet inférieur. Vous voyez que l’application logique exécute des messages qui ont été envoyés à la rubrique. L’exécution de l’application logique peut prendre quelques minutes. Sélectionnez Actualiser dans la barre d’outils pour actualiser la page.

    Capture d’écran montrant l’historique des exécutions de l’application logique.

  3. Sélectionnez une exécution de l’application logique pour voir les détails. Notez qu’elle a traité 5 messages dans la boucle for.

    Capture d’écran montrant les détails de l’exécution de l’application logique sélectionnée.

  4. Vous devez recevoir un e-mail pour chaque message reçu par l’application logique.

    Capture d’écran d’Outlook avec les messages reçus de l’abonnement des rubriques.

Résolution des problèmes

Si vous ne voyez aucune invocation 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. Dans ce cas, j’ai exécuté l’application MessageSender une fois, donc je vois 5 messages.

    Capture d’écran montrant la page Rubrique Service Bus avec le nombre de messages entrants sélectionné.

  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 montrant la page Abonnement Service Bus avec le nombre de messages actif sélectionné.

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

    Capture d’écran montrant la page Événements de la page Espace de noms Service Bus.

  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 montrant la page Abonnement aux événements avec le nombre d’événements remis sélectionné.

Étapes suivantes