Depuración de un bot desde cualquier canal mediante ngrokDebug a bot from any channel using ngrok

se aplica a: SDK V4APPLIES TO: SDK v4

Cuando el bot está en desarrollo, puede depurar el bot localmente mediante un IDE como Visual Studio o Visual Studio Code.When your bot is in development, you can debug your bot locally using an IDE such as Visual Studio or Visual Studio Code. También puede depurar un bot mediante el emulador de bot Framework mediante la conversación con el bot localmente e inspeccionar los mensajes que envía y recibe el bot.You can also debug a bot using the Bot Framework Emulator by chatting with your bot locally and inspect the messages your bot sends and receives. Puede incluso hacer pequeñas actualizaciones del código de Bot y habilitar la característica para depurar un bot con middleware de inspección.You can even make slight updates of your bot's code and enable the feature to debug a bot with inspection middleware.

Cuando el bot ya está en producción, puede depurar el bot desde cualquier canal mediante ngrok.When your bot is already in production, you can debug your bot from any channel using ngrok. La conexión directa de su bot a varios canales es una característica clave disponible en Bot Framework.The seamless connection of your bot to multiple channels is a key feature available in Bot Framework. En este artículo, le mostraremos cómo depurar de forma local el bot desde cualquier canal en el que esté configurado el bot de producción, mediante ngrok.In this article, we will show you how to locally debug your bot from any channel your production bot is configured for, using ngrok. Usamos un ejemplo de EchoBot conectado al canal de Microsoft Teams en el artículo para obtener instrucciones.We used an EchoBot sample connected to Microsoft Teams Channel throughout the article for instruction.

PrerrequisitosPrerequisites

Ejecución de ngrokRun ngrok

ngrok es una aplicación multiplataforma que "le permite exponer un servidor Web que se ejecuta en el equipo local a Internet".ngrok is a cross-platform application that "allows you to expose a web server running on your local machine to the internet." En esencia, lo que haremos es usar ngrok para reenviar mensajes desde canales externos en la web directamente a la máquina local para permitir la depuración, en lugar del extremo de mensajería estándar configurado en el Azure portal.Essentially, what we'll be doing is using ngrok to forward messages from external channels on the web directly to our local machine to allow debugging, as opposed to the standard messaging endpoint configured in the Azure portal.

  1. Abra un terminal y navegue hasta la carpeta donde se encuentra el archivo ejecutable ngrok .Open a terminal and navigate to the folder where your ngrok executable is.

  2. Ejecute ngrok con el siguiente comando para crear un nuevo túnel.Run ngrok with the following command to create a new tunnel.

    ngrok http 3978 -host-header="localhost:3978"
    

    Nota

    Tenga en cuenta que el puerto especificado es el puerto en el que se ejecuta el bot.Please note that the port specified is the port your bot is running on. Puede usar cualquier puerto localhost que desee.You may use any localhost port you'd like.

  3. Cuando se inicie ngrok , copie y guarde la dirección URL de reenvío pública para más adelante.When ngrok starts, copy and save the public forwarding URL for later.

    URL de reenvío de ngrokngrok forwarding url

Configuración en Azure PortalConfigure in Azure portal

Mientras se ejecuta ngrok , inicie sesión en su Azure portal y vea la configuración de bot para realizar alguna configuración.While ngrok is running, login to your Azure portal and view your bot settings to do some configuration.

  1. Seleccione el registro de canales de bot conectado al bot local.Select your Bot Channels Registration connected to your local bot.

  2. Desplácese hacia abajo hasta configuración.Scroll down to Configuration. Copie y pegue la dirección URL de reenvío de ngrok en el campo punto de conexión de mensajería .Copy and paste the ngrok forwarding URL in the Messaging endpoint field. Asegúrese de mantener "/API/Messages" al final de la dirección URL.Ensure that you maintain "/api/messages" at the end of the URL.

    extremo de mensajeríamessaging endpoint

  3. Desplácese hacia arriba y seleccione Guardar.Scroll up and select Save.

PruebaTest

En este momento, los mensajes entrantes desde a su bot desde canales externos se enviarán ahora al bot local.At this point, incoming messages from to your bot from external channels will now be sent to your local bot. El bot de ejemplo que usaremos para demostrar que ya está configurado en directo para Microsoft Teams.The sample bot we'll use to demonstrate this is already configured live for Microsoft Teams. Lea conexión de un bot a Microsoft Teams sobre la conexión de un bot local con el canal de Microsoft Teams .Read Connect a bot to Microsoft Teams about connecting a local bot with Microsoft Teams channel.

canal de equiposteams channel

Localmente, puede establecer puntos de interrupción en Visual Studio.Locally, you can set breakpoints in Visual Studio. Al expandir la propiedad text del objeto de actividad entrante, verá que el mensaje que envió a los equipos se está interceptando localmente para que lo depure.Expanding the text property from the incoming activity object, you will see that the message you sent the bot from teams is being intercepted locally for you to debug.

establecer puntos de interrupciónset breakpoints

Desde aquí, puede depurar normalmente y ejecutar el código paso a paso.From here you can debug normally, and run your code step by step. Puede utilizar esto para depurar el bot desde cualquier canal.You can use this to debug your bot from any channel.

depurar continuardebug continue

Información adicionalAdditional information