Partilhar via


Depurar um bot de qualquer canal usando ngrok

APLICA-SE A: SDK v4

Enquanto seu bot está em desenvolvimento, você pode usar um IDE e o Bot Framework Emulator para conversar com seu bot localmente e inspecionar as mensagens que seu bot envia e recebe. Se o bot estiver em produção, você poderá depurá-lo de qualquer canal usando o ngrok. A conexão perfeita do seu bot a vários canais é um recurso fundamental disponível no Bot Framework.

Este artigo descreve como depurar seu bot localmente usando ngrok e um C# EchoBot em um canal conectado ao seu bot. Este artigo usa o Microsoft Teams como um canal de exemplo.

Nota

O Bot Framework Emulator e o ngrok não suportam identidade gerenciada atribuída pelo usuário ou bots de locatário único.

Pré-requisitos

  • Uma subscrição do Microsoft Azure.
  • Instale o ngrok.
  • Um bot C# Echo, configurado como um aplicativo multilocatário e conectado a qualquer canal.

Executar ngrok

ngrok é um aplicativo multiplataforma que pode criar um URL de encapsulamento ou encaminhamento, para que as solicitações da Internet cheguem à sua máquina local. Use ngrok para encaminhar mensagens de canais externos na Web diretamente para sua máquina local para permitir a depuração, em oposição ao ponto de extremidade de mensagens padrão configurado no portal do Azure.

  1. Abra um terminal e vá para a pasta com o executável ngrok.

  2. Execute ngrok com o seguinte comando para criar um novo túnel.

    ngrok http 3978 --host-header rewrite
    

    Nota

    A porta especificada é a porta em que o bot está sendo executado. Você pode usar qualquer porta localhost que desejar.

  3. Quando o ngrok for iniciado, copie e salve o URL de encaminhamento público para mais tarde.

    ngrok forwarding URL

Configurar no portal do Azure

Enquanto o ngrok estiver em execução, entre no portal do Azure e exiba as configurações do bot para fazer algumas configurações.

  1. Selecione seu recurso de bot conectado ao seu bot local.

  2. Role para baixo até Configuração. Copie e cole a URL de encaminhamento ngrok no campo Ponto de extremidade de mensagens. Certifique-se de manter "/api/messages" no final do URL.

    Messaging endpoint

  3. Role para cima e selecione Salvar.

Teste

Neste ponto, as mensagens recebidas do bot para o bot de canais externos serão enviadas para o bot local. O bot de exemplo que usaremos para demonstrar isso já está configurado ao vivo para o Microsoft Teams. Leia Conectar um bot ao Microsoft Teams sobre como conectar um bot local ao canal do Microsoft Teams.

Teams channel

Localmente, você pode definir pontos de interrupção no Visual Studio. Expandindo a propriedade text do objeto de atividade de entrada, você verá que a mensagem enviada ao bot das equipes está sendo intercetada localmente para você depurar.

Set breakpoints

A partir daqui, você pode depurar normalmente e executar seu código passo a passo. Use isso para depurar seu bot de qualquer canal.

Informações adicionais