使用 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。
必要條件
- 訂閱 Microsoft Azure。
- 安裝 ngrok 。
- C# Echo Bot ,設定為多租使用者應用程式,並聯機到任何 通道 。
執行 ngrok
ngrok 是跨平臺應用程式,可以建立通道或轉送 URL,讓網際網路要求到達本機電腦。 使用 ngrok 將網路上外部通道的訊息直接轉送至本機電腦,以允許偵錯,而不是Azure 入口網站中設定的標準傳訊端點。
開啟終端機,並使用 ngrok 可執行檔移至資料夾。
使用下列命令執行 ngrok 以建立新的通道。
ngrok http 3978 --host-header rewrite
注意
指定的埠是您 Bot 正在執行的埠。 您可以使用您想要的任何 localhost 埠。
ngrok 啟動時,複製並儲存公用轉送 URL 以供稍後使用。
在 Azure 入口網站中設定
執行 ngrok 時,請登入您的Azure 入口網站並檢視 Bot 設定以執行某些設定。
選取連線至本機 Bot 的 Bot 資源。
向下捲動至 [ 設定 ]。 複製並貼上 [傳訊端點 ] 欄位中的 ngrok 轉寄 URL。 請確定您在 URL 結尾維護 「/api/messages」。
向上捲動並選取 [ 儲存 ]。
Test
此時,從外部通道傳送至 Bot 的傳入訊息現在會傳送至本機 Bot。 我們將用來示範此範例 Bot 已針對 Microsoft Teams 即時設定。 閱讀 連線 Bot 至 Microsoft Teams,以瞭解如何將本機 Bot 與 Microsoft Teams 頻道連線 。
您可以在本機設定 Visual Studio 中的中斷點。 從傳入活動物件展開文字屬性,您會看到您從小組傳送 Bot 的訊息正在本機攔截,讓您進行偵錯。
您可以從這裡正常偵錯,並逐步執行程式碼。 使用此專案可從任何通道偵錯 Bot。