Depuración de un bot desde cualquier canal mediante ngrok

SE APLICA A: SDK v4

Mientras el bot está en desarrollo, puedes usar un IDE y Bot Framework Emulator para chatear con el bot localmente e inspeccionar los mensajes que envía y recibe el bot. Si el bot está en producción, puedes depurar el bot desde cualquier canal mediante ngrok. La conexión sin problemas del bot a varios canales es una característica clave disponible en Bot Framework.

En este artículo se describe cómo depurar el bot localmente mediante ngrok y un EchoBot de C# en un canal conectado al bot. En este artículo se usa Microsoft Teams como canal de ejemplo.

Nota:

Bot Framework Emulator y ngrok no admiten identidad administrada asignada por el usuario ni bots de inquilino único.

Requisitos previos

Ejecución de ngrok

ngrok es una aplicación multiplataforma que puede crear una dirección URL de tunelización o reenvío para que las solicitudes de Internet lleguen a la máquina local. Use ngrok para reenviar mensajes desde canales externos en la web directamente a la máquina local para permitir la depuración, en lugar del punto de conexión de mensajería estándar configurado en Azure Portal.

  1. Abra un terminal y vaya a la carpeta con el ejecutable ngrok.

  2. Ejecute ngrok con el siguiente comando para crear un nuevo túnel.

    ngrok http 3978 --host-header rewrite
    

    Nota:

    El puerto especificado es el puerto en el que se ejecuta el bot. Puedes usar cualquier puerto localhost que desees.

  3. Cuando se inicia ngrok, copia y guarda la dirección URL de reenvío pública para más tarde.

    ngrok forwarding URL

Configuración en Azure Portal

Mientras se ejecuta ngrok, inicia sesión en Azure Portal y ve la configuración del bot para realizar alguna configuración.

  1. Selecciona el recurso del bot conectado al bot local.

  2. Desplázate hacia abajo hasta Configuración. Copie y pegue la dirección URL de reenvío de ngrok en el campo Punto de conexión de mensajería. Asegúrate de mantener "/api/messages" al final de la dirección URL.

    Messaging endpoint

  3. Desplázate hacia abajo y selecciona Guardar.

Prueba

En este momento, los mensajes entrantes desde el bot desde canales externos ahora se enviarán al bot local. El bot de ejemplo que usaremos para demostrar que ya está configurado en directo para Microsoft Teams. Lea Conectar un bot a Microsoft Teams sobre cómo conectar un bot local con el canal de Microsoft Teams.

Teams channel

Localmente, puede establecer puntos de interrupción en Visual Studio. Al expandir la propiedad de texto desde el objeto de actividad entrante, verás que el mensaje que enviaste al bot de los equipos se intercepta localmente para que se depure.

Set breakpoints

Desde aquí, puedes depurar normalmente y ejecutar el código paso a paso. Úsalo para depurar el bot desde cualquier canal.

Información adicional