你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

适用于:SDK v4

虽然机器人还处于开发阶段,但可以使用 IDE 和 Bot Framework Emulator 在本地与机器人聊天,并检查机器人收发的消息。 如果将机器人投放到生产环境中,可以使用 ngrok 从任何通道调试机器人。 机器人与多个通道的无缝连接是 Bot Framework 中提供的一项关键功能。

本文介绍如何在连接到机器人的通道中使用 ngrok 和 C# EchoBot 在本地调试机器人。 本文使用 Microsoft Teams 作为示例通道。

注意

Bot Framework Emulator 和 ngrok 不支持用户分配的托管标识或单租户机器人。

先决条件

运行 ngrok

ngrok 是一个跨平台应用程序,可以创建隧道或转发 URL,以便 Internet 请求到达本地计算机。 使用 ngrok 将 Web 上外部通道的消息直接转发到本地计算机,以进行调试,而不是 Azure 门户中配置的标准消息传送终结点。

  1. 打开终端,并转到包含 ngrok 可执行文件的文件夹。

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

    ngrok http 3978 --host-header rewrite
    

    注意

    指定的端口是运行机器人的端口。 你可以使用任何所需的 localhost 端口。

  3. 启动 ngrok 后,复制并保存公共转发 URL 供稍后使用。

    ngrok forwarding URL

在 Azure 门户中配置

当 ngrok 正在运行时,登录到 Azure 门户并查看机器人设置,以完成一些配置。

  1. 选择连接到本地机器人的机器人资源。

  2. 向下滚动到“配置”。 拷贝 ngrok 转发 URL 并将其粘贴到消息传送终结点字段中。 确保保留该 URL 末尾的“/api/messages”。

    Messaging endpoint

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

测试

现在,从外部通道传入机器人的消息将发送到本地机器人。 用于演示此操作的示例机器人已经为 Microsoft Teams 实时进行配置。 阅读将机器人连接到 Microsoft Teams,了解如何将本地机器人连接到 Microsoft Teams 通道。

Teams channel

在本地,可以在 Visual Studio 中设置断点。 展开传入活动对象中的 text 属性,你会发现,系统正在本地截获从 Teams 发送到机器人的消息以供调试。

Set breakpoints

在此处可以正常调试,并逐步运行代码。 使用此设置从任何通道调试机器人。

其他信息