Felsöka en robot från valfri kanal med ngrok

GÄLLER FÖR: SDK v4

Medan roboten är under utveckling kan du använda en IDE och Bot Framework-emulatorn för att chatta med din robot lokalt och inspektera de meddelanden som roboten skickar och tar emot. Om roboten är i produktion kan du felsöka roboten från valfri kanal med hjälp av ngrok. Den sömlösa anslutningen av din robot till flera kanaler är en viktig funktion som är tillgänglig i Bot Framework.

Den här artikeln beskriver hur du felsöker din robot lokalt med hjälp av ngrok och en C# EchoBot i en kanal som är ansluten till din robot. I den här artikeln används Microsoft Teams som en exempelkanal.

Kommentar

Bot Framework-emulatorn och ngrok stöder inte användartilldelade hanterade identiteter eller robotar med en enda klientorganisation.

Förutsättningar

Kör ngrok

ngrok är ett plattformsoberoende program som kan skapa en url för tunneltrafik eller vidarebefordran, så att internetbegäranden når din lokala dator. Använd ngrok för att vidarebefordra meddelanden från externa kanaler på webben direkt till din lokala dator för att tillåta felsökning, till skillnad från standardslutpunkten för meddelanden som konfigurerats i Azure-portalen.

  1. Öppna en terminal och gå till mappen med den körbara ngrok-filen.

  2. Kör ngrok med följande kommando för att skapa en ny tunnel.

    ngrok http 3978 --host-header rewrite
    

    Kommentar

    Den angivna porten är den port som roboten körs på. Du kan använda valfri localhost-port som du vill.

  3. När ngrok startar kopierar och sparar du url:en för offentlig vidarebefordran för senare.

    ngrok forwarding URL

Konfigurera i Azure Portal

När ngrok körs loggar du in på Azure-portalen och visar dina robotinställningar för att utföra vissa konfigurationer.

  1. Välj robotresursen som är ansluten till din lokala robot.

  2. Rulla ned till Konfiguration. Kopiera och klistra in url:en för ngrok-vidarebefordran i fältet Meddelandeslutpunkt . Se till att du underhåller "/api/messages" i slutet av URL:en.

    Messaging endpoint

  3. Rulla uppåt och välj Spara.

Testa

Nu skickas inkommande meddelanden från till din robot från externa kanaler till din lokala robot. Exempelroboten som vi använder för att visa att detta redan har konfigurerats live för Microsoft Teams. Läs Anslut en robot till Microsoft Teams om hur du ansluter en lokal robot till Microsoft Teams-kanalen.

Teams channel

Lokalt kan du ange brytpunkter i Visual Studio. När du expanderar textegenskapen från det inkommande aktivitetsobjektet ser du att meddelandet du skickade roboten från teamen fångas upp lokalt så att du kan felsöka.

Set breakpoints

Härifrån kan du felsöka normalt och köra koden steg för steg. Använd detta för att felsöka din robot från valfri kanal.

Ytterligare information