使用 ngrok 從任何通道對 Bot 進行偵錯

適用于: SDK v4

在開發 Bot 時,您可以使用 IDE 和 Bot Framework 模擬器在本機與您的 Bot 聊天,並檢查 Bot 傳送和接收的訊息。 如果您的 Bot 在生產環境中,您可以使用 ngrok 從任何通道 對 Bot 進行偵錯。 Bot 與多個通道的無縫連線,是 Bot Framework 中提供的重要功能。

本文說明如何在連線至 Bot 的通道中使用 ngrok 和 C# EchoBot 在本機偵錯 Bot。 本文使用 Microsoft Teams 作為範例頻道。

注意

Bot Framework 模擬器和 ngrok 不支援使用者指派的受控識別或單一租使用者 Bot。

必要條件

執行 ngrok

ngrok 是跨平臺應用程式,可以建立通道或轉送 URL,讓網際網路要求到達本機電腦。 使用 ngrok 將網路上外部通道的訊息直接轉送至本機電腦,以允許偵錯,而不是Azure 入口網站中設定的標準傳訊端點。

  1. 開啟終端機,並使用 ngrok 可執行檔移至資料夾。

  2. 使用下列命令執行 ngrok 以建立新的通道。

    ngrok http 3978 --host-header rewrite
    

    注意

    指定的埠是您 Bot 正在執行的埠。 您可以使用您想要的任何 localhost 埠。

  3. ngrok 啟動時,複製並儲存公用轉送 URL 以供稍後使用。

    ngrok forwarding URL

在 Azure 入口網站中設定

執行 ngrok 時,請登入您的Azure 入口網站並檢視 Bot 設定以執行某些設定。

  1. 選取連線至本機 Bot 的 Bot 資源。

  2. 向下捲動至 [ 設定 ]。 複製並貼上 [傳訊端點 ] 欄位中的 ngrok 轉寄 URL。 請確定您在 URL 結尾維護 「/api/messages」。

    Messaging endpoint

  3. 向上捲動並選取 [ 儲存 ]。

Test

此時,從外部通道傳送至 Bot 的傳入訊息現在會傳送至本機 Bot。 我們將用來示範此範例 Bot 已針對 Microsoft Teams 即時設定。 閱讀 連線 Bot 至 Microsoft Teams,以瞭解如何將本機 Bot 與 Microsoft Teams 頻道連線

Teams channel

您可以在本機設定 Visual Studio 中的中斷點。 從傳入活動物件展開文字屬性,您會看到您從小組傳送 Bot 的訊息正在本機攔截,讓您進行偵錯。

Set breakpoints

您可以從這裡正常偵錯,並逐步執行程式碼。 使用此專案可從任何通道偵錯 Bot。

其他資訊