您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

使用 ngrok 从任意通道调试机器人

适用于: SDK v4

当 bot 正在开发时,可以使用 IDE (如 Visual Studio 或 Visual Studio Code)在本地调试机器人。 你还可以使用 Bot Framework Emulator 调试机器人,方法是在本地与机器人聊天,并检查机器人发送和接收的消息。 甚至可以对 bot 的代码进行轻微更新,并使该功能能够 使用检查中间件调试机器人

当你的机器人已经投入生产时,可以使用 ngrok 从任意 通道调试机器人。 自动连接到多个通道的自动连接是机器人框架中提供的一项重要功能。 在本文中,我们将向你展示如何使用 ngrok 从为生产机器人配置的任何通道本地调试机器人。 我们在本文中使用了一种连接到Microsoft Teams 通道EchoBot示例用于说明。

先决条件

运行 ngrok

ngrok 是一个跨平台应用程序,"允许向 internet 公开在本地计算机上运行的 web 服务器"。 实质上,我们要做的是使用 ngrok 将消息从 web 上的外部通道直接转发给本地计算机,以允许进行调试,而不是在 Azure 门户中配置的标准消息传递终结点。

  1. 打开终端并导航到 ngrok 可执行文件所在的文件夹。

  2. 使用以下命令运行 ngrok 以创建新的隧道。

    ngrok http 3978 -host-header="localhost:3978"
    

    备注

    请注意,指定的端口是机器人运行的端口。 你可以使用所需的任何本地主机端口。

  3. ngrok 启动时,请复制并保存此公共转发 URL 供以后查看。

    ngrok 转发 url

在 Azure 门户中配置

ngrok 运行时,请登录到 Azure 门户并查看 bot 设置以执行某些配置。

  1. 选择连接到本地机器人的 机器人频道注册

  2. 向下滚动到 " 配置"。 复制并粘贴 "消息传递终结点" 字段中的 ngrok 转发 URL。 确保在 URL 的末尾保留 "/api/messages"。

    消息传递终结点

  3. 向上滚动并选择 " 保存"。

测试

此时,来自外部通道的机器人的传入消息现在将发送到本地机器人。 我们将使用的示例 bot 为 Microsoft Teams 配置 live。 阅读 连接机器人以 Microsoft Teams有关将本地机器人与 Microsoft Teams 通道连接的信息。

团队频道

在本地,可以在 Visual Studio 中设置断点。 展开 "传入的活动" 对象中的 "text" 属性,您将看到从团队中发送机器人的消息被本地截获,以便您进行调试。

设置断点

从这里,你可以正常调试,并逐步运行你的代码。 可以使用它从任何通道调试机器人。

调试继续

其他信息