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 seu bot estiver em produção, você poderá depurá-lo de qualquer canal usando o ngrok. A conexão perfeita do seu bot com vários canais é um recurso fundamental disponível no Bot Framework.

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

Observação

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

Pré-requisitos

Executar o ngrok

O ngrok é um aplicativo multiplataforma que pode criar um URL de túnel ou encaminhamento para que as solicitações de Internet cheguem ao computador local. Use o ngrok para encaminhar mensagens de canais externos na Web diretamente para o seu computador local para permitir a depuração, em oposição ao ponto de extremidade de mensagens padrão configurado no portal do Azure.

  1. Kudu um terminal e acesse a pasta com o executável ngrok.

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

    ngrok http 3978 --host-header rewrite
    

    Observação

    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 a 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 alguma configuração.

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

  2. Scroll down 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 da URL.

    Messaging endpoint

  3. Scroll up e selecione Salvar.

Teste

Neste ponto, as mensagens recebidas do seu bot de canais externos agora serão enviadas para o bot local. O bot de exemplo que usaremos para demonstrar isso já foi 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 texto do objeto de atividade de entrada, você verá que a mensagem enviada ao bot das equipes está sendo interceptada localmente para você depurar.

Set breakpoints

A partir daqui, você pode depurar normalmente e executar seu código etapa por etapa. Use essa etapa para depurar seu bot de qualquer canal.

Informações adicionais