Déboguer un bot à partir d’un canal avec ngrok

S’APPLIQUE À : SDK v4

Pendant que votre bot est en cours de développement, vous pouvez utiliser un IDE et Bot Framework Emulator pour discuter avec votre bot en local et contrôler les messages que votre bot envoie et reçoit. Si votre bot est en production, vous pouvez déboguer votre bot à partir de n’importe quel canal à l’aide de ngrok. La connexion transparente de votre bot à plusieurs canaux est une fonctionnalité clé disponible dans Bot Framework.

Le présent article explique comment déboguer votre bot localement à l’aide de ngrok et d’un EchoBot C# dans un canal connecté à votre bot. Le présent article utilise Microsoft Teams comme exemple de canal.

Remarque

Bot Framework Emulator et ngrok ne prennent pas en charge l’identité managée affectée par l’utilisateur ou les bots à locataire unique.

Prérequis

Exécuter ngrok

ngrok est une application multiplateforme qui peut créer une URL de tunneling ou de transfert afin que les requêtes Internet atteignent votre ordinateur local. Utilisez ngrok pour transférer des messages à partir de canaux externes sur le web directement vers votre ordinateur local pour autoriser le débogage, par opposition au point de terminaison de messagerie standard configuré dans le Portail Azure.

  1. Ouvrez un terminal et accédez au dossier contenant l’exécutable ngrok.

  2. Exécutez ngrok avec la commande suivante pour créer un tunnel.

    ngrok http 3978 --host-header rewrite
    

    Remarque

    Le port spécifié est le port sur lequel votre bot fonctionne. Vous pouvez utiliser n’importe quel port localhost souhaité.

  3. Lorsque ngrok démarre, copiez et enregistrez l’URL de transfert public pour plus tard.

    ngrok forwarding URL

Configurer dans le portail Azure

Pendant que ngrok est en cours d’exécution, connectez-vous à votre Portail Azure et affichez les paramètres de votre bot pour effectuer une configuration.

  1. Sélectionnez votre ressource de bot connectée à votre bot local.

  2. Faites défiler vers le bas jusqu’à Configuration. Copiez et collez l’URL de transfert ngrok dans le champ point de terminaison de messagerie. Assurez-vous que l’URL se termine par « /api/messages ».

    Messaging endpoint

  3. Faites défiler vers le haut et cliquez sur Enregistrer.

Test

À ce stade, les messages entrants de votre bot à partir de canaux externes seront désormais envoyés à votre bot local. L’exemple de bot que nous allons utiliser pour illustrer qu’il est déjà configuré en direct pour Microsoft Teams. Lisez Connecter un bot à Microsoft Teams sur la connexion d’un bot local avec le canal Microsoft Teams.

Teams channel

Vous pouvez définir des points d’arrêt en local dans Visual Studio. En développant la propriété textuelle de l’objet d’activité entrant, vous verrez que le message que vous avez envoyé au bot à partir des équipes est intercepté localement pour que vous puissiez le déboguer.

Set breakpoints

À partir de là, vous pouvez déboguer normalement et exécuter votre code étape par étape. Utilisez-le pour déboguer votre bot à partir de n’importe quel canal.

Informations supplémentaires