你当前正在访问 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 不支持用户分配的托管标识或单租户机器人。
先决条件
- Microsoft Azure 订阅。
- 安装 ngrok。
- C# Echo 机器人,配置为多租户应用,并连接到任一通道。
运行 ngrok
ngrok 是一个跨平台应用程序,可以创建隧道或转发 URL,以便 Internet 请求到达本地计算机。 使用 ngrok 将 Web 上外部通道的消息直接转发到本地计算机,以进行调试,而不是 Azure 门户中配置的标准消息传送终结点。
打开终端,并转到包含 ngrok 可执行文件的文件夹。
使用以下命令运行 ngrok 以创建新的隧道。
ngrok http 3978 --host-header rewrite
注意
指定的端口是运行机器人的端口。 你可以使用任何所需的 localhost 端口。
启动 ngrok 后,复制并保存公共转发 URL 供稍后使用。
在 Azure 门户中配置
当 ngrok 正在运行时,登录到 Azure 门户并查看机器人设置,以完成一些配置。
选择连接到本地机器人的机器人资源。
向下滚动到“配置”。 拷贝 ngrok 转发 URL 并将其粘贴到消息传送终结点字段中。 确保保留该 URL 末尾的“/api/messages”。
向上滚动并选择“保存”。
测试
现在,从外部通道传入机器人的消息将发送到本地机器人。 用于演示此操作的示例机器人已经为 Microsoft Teams 实时进行配置。 阅读将机器人连接到 Microsoft Teams,了解如何将本地机器人连接到 Microsoft Teams 通道。
在本地,可以在 Visual Studio 中设置断点。 展开传入活动对象中的 text 属性,你会发现,系统正在本地截获从 Teams 发送到机器人的消息以供调试。
在此处可以正常调试,并逐步运行代码。 使用此设置从任何通道调试机器人。