什么可能会阻止 EC2 托管的机器人回复 Microsoft Bot Framework 上的消息?
What might be preventing an EC2-hosted bot replying to messages on the Microsoft Bot Framework?
我有一个 Node.JS 机器人托管在 AWS EC2 上,具有有效的 Comodo SSL 证书,可在 Chrome/Firefox/Safari 中使用,并且我在机器人框架上为我的端点配置了一个机器人。
当我在 https://dev.botframework.com 启动机器人框架控制台时,我可以单击 "test" 按钮,它显示 "Accepted"。我还可以在嵌入式网络聊天中发送一条消息,我在 AWS 上的机器人上的日志记录显示正在接收消息,并且通过调用 session.send()... 26=] 消息永远不会出现在网络聊天中。服务器端或 bot 框架错误查看器中没有记录任何错误,消息似乎只是静静地丢弃了。我添加了一个 Skype 频道并在 Skype 中获得了完全相同的行为。
当我将相同的代码部署到 Azure Web 应用程序时,它在两个方向上都工作正常。
我完全被卡住了...我无法弄清楚是什么阻止了 return 消息的返回,我也看不到接下来要采取什么步骤来进行故障排除。从文档中不清楚消息是如何发送回框架的,是否有一个特定的 host/IP/port 我应该从 EC2 进行探测以查看是否有问题?我的 AWS 安全组中没有出站规则会阻止连接,例如"telnet directline.botframework.com 80" 成功。
事实证明,问题是在迁移到 EC2 时我未能为机器人框架设置 App ID 和密码(我将它们作为环境变量提供)。向 ChatConnector 构造函数的映射的 "appId" 和 "appPassword" 参数提供一个未定义的值是一个有效的输入:它在连接器看来好像没有设置任何值,并且连接器进入测试模式并且在模拟器上运行良好。
出于某种原因,当机器人在没有身份验证的情况下将消息发送回框架时,机器人框架控制台(在 https://dev.botframework.com/bots)不报告错误,并且由于某种原因 "Test connection to your bot" 显示 "Accepted" 没有验证。我尝试使用无效的 appId 和 appPassword,它报告 "Forbidden"。如果它在连接到机器人时也这样做 运行 没有 appId 和 appPassword 它将对故障排除有很大帮助。
我有一个 Node.JS 机器人托管在 AWS EC2 上,具有有效的 Comodo SSL 证书,可在 Chrome/Firefox/Safari 中使用,并且我在机器人框架上为我的端点配置了一个机器人。
当我在 https://dev.botframework.com 启动机器人框架控制台时,我可以单击 "test" 按钮,它显示 "Accepted"。我还可以在嵌入式网络聊天中发送一条消息,我在 AWS 上的机器人上的日志记录显示正在接收消息,并且通过调用 session.send()... 26=] 消息永远不会出现在网络聊天中。服务器端或 bot 框架错误查看器中没有记录任何错误,消息似乎只是静静地丢弃了。我添加了一个 Skype 频道并在 Skype 中获得了完全相同的行为。
当我将相同的代码部署到 Azure Web 应用程序时,它在两个方向上都工作正常。
我完全被卡住了...我无法弄清楚是什么阻止了 return 消息的返回,我也看不到接下来要采取什么步骤来进行故障排除。从文档中不清楚消息是如何发送回框架的,是否有一个特定的 host/IP/port 我应该从 EC2 进行探测以查看是否有问题?我的 AWS 安全组中没有出站规则会阻止连接,例如"telnet directline.botframework.com 80" 成功。
事实证明,问题是在迁移到 EC2 时我未能为机器人框架设置 App ID 和密码(我将它们作为环境变量提供)。向 ChatConnector 构造函数的映射的 "appId" 和 "appPassword" 参数提供一个未定义的值是一个有效的输入:它在连接器看来好像没有设置任何值,并且连接器进入测试模式并且在模拟器上运行良好。
出于某种原因,当机器人在没有身份验证的情况下将消息发送回框架时,机器人框架控制台(在 https://dev.botframework.com/bots)不报告错误,并且由于某种原因 "Test connection to your bot" 显示 "Accepted" 没有验证。我尝试使用无效的 appId 和 appPassword,它报告 "Forbidden"。如果它在连接到机器人时也这样做 运行 没有 appId 和 appPassword 它将对故障排除有很大帮助。