Debuggen eines Bots über einem beliebigen Kanal mithilfe von ngrok

GILT FÜR: SDK v4

Während sich Ihr Bot in der Entwicklung befindet, können Sie eine IDE und den Bot-Framework-Emulator verwenden, um lokal mit Ihrem Bot zu chatten und die Nachrichten zu prüfen, die Ihr Bot sendet und empfängt. Wenn Sich Ihr Bot in der Produktion befindet, können Sie Ihren Bot über einen beliebigen Kanal mit ngrok debuggen. Die nahtlose Verbindung Ihres Bots mit mehreren Kanälen ist ein wichtiges Feature, das im Bot Framework zur Verfügung steht.

In diesem Artikel wird beschrieben, wie Sie Ihren Bot lokal mithilfe von ngrok und einem C#-EchoBot in einem Kanal debuggen, der mit Ihrem Bot verbunden ist. In diesem Artikel wird Microsoft Teams als Beispielkanal verwendet.

Hinweis

Der Bot Framework-Emulator und ngrok unterstützen keine benutzerseitig zugewiesenen verwalteten Identitäten oder Bots mit nur einem Mandanten.

Voraussetzungen

  • Ein Abonnement für Microsoft Azure.
  • Installieren Sie ngrok.
  • Ein C#-Echo-Bot, der als mehrinstanzfähige App konfiguriert und mit einem beliebigen Kanal verbunden ist.

Ausführen von ngrok

ngrok ist eine plattformübergreifende Anwendung, die eine Tunneling- oder Weiterleitungs-URL erstellen kann, sodass Internetanforderungen Ihren lokalen Computer erreichen. Verwenden Sie ngrok, um Nachrichten von externen Kanälen im Web direkt an Ihren lokalen Computer weiterzuleiten, um das Debuggen zuzulassen, im Gegensatz zum standardmäßigen Messagingendpunkt, der im Azure-Portal konfiguriert ist.

  1. Öffnen Sie ein Terminal, und wechseln Sie zum Ordner mit der ausführbaren ngrok-Datei.

  2. Führen Sie ngrok mit dem folgenden Befehl aus, um einen neuen Tunnel zu erstellen:

    ngrok http 3978 --host-header rewrite
    

    Hinweis

    Der angegebene Port ist der Port, auf dem Ihr Bot ausgeführt wird. Sie können einen beliebigen localhost-Port verwenden.

  3. Wenn ngrok gestartet wird, kopieren und speichern Sie die Weiterleitungs-URL für später.

    ngrok forwarding URL

Konfigurieren im Azure-Portal

Während ngrok ausgeführt wird, melden Sie sich bei Ihrem Azure-Portal an, und zeigen Sie Ihre Bot-Einstellungen an, um eine Konfiguration durchzuführen.

  1. Wählen Sie Ihre Bot-Ressource aus, die mit Ihrem lokalen Bot verbunden ist.

  2. Scrollen Sie nach unten zur Konfiguration. Kopieren Sie die ngrok-Weiterleitungs-URL, und fügen Sie sie in das Messaging-Endpunktfeld ein. Stellen Sie sicher, dass am Ende der URL "/api/messages" steht.

    Messaging endpoint

  3. Scrollen Sie nach unten, und wählen Sie Speichern.

Test

An diesem Punkt werden eingehende Nachrichten von Ihrem Bot aus externen Kanälen jetzt an Ihren lokalen Bot gesendet. Der Beispielbot, den wir verwenden, um zu veranschaulichen, ist bereits live für Microsoft Teams konfiguriert. Lesen Sie Einen Bot mit Microsoft Teams verbinden, um einen lokalen Bot mit dem Microsoft Teams-Kanal zu verbinden.

Teams channel

Lokal können Sie Breakpoints in Visual Studio festlegen. Wenn Sie die Texteigenschaft aus dem eingehenden Aktivitätsobjekt erweitern, sehen Sie, dass die Nachricht, die Sie vom Bot von Teams gesendet haben, lokal abgefangen wird, damit Sie debuggen können.

Set breakpoints

Von hier aus können Sie normal debuggen und den Code Schritt für Schritt ausführen. Verwenden Sie diese Methode, um Ihren Bot aus einem beliebigen Kanal zu debuggen.

Weitere Informationen