【问题标题】:Bot fails to deploy with 500 server errorBot 部署失败,出现 500 服务器错误
【发布时间】:2018-10-20 04:11:43
【问题描述】:

我正在尝试在 Node.js 中为 web bot 构建多个部署环境。我创建了 2 个资源组并生成了所有必要的凭据 - 应用程序 ID、应用程序密码和密钥(直线)。我正在使用 bitbucket 管道进行部署,并且每个分支的变量都匹配。

最终结果是一个机器人正在工作,另一个返回 500 错误。在 Kudu 中,我可以看到代码正在运行。当我尝试从 CMD 手动运行代码时,它返回一个错误:

bot.listen() 不是函数

这很令人困惑,因为这 2 个机器人之间唯一不同的是凭据 - 应用程序 ID、应用程序密码和直接线路的密钥。我仔细检查了值是否正确粘贴。依然没有。这似乎是这些变量的值的问题吗?

此外,正在运行的一个是在 8 月设置的,而另一个是几天前创建的。在设置过程中,注意到需要注册才能获取应用程序密码(第一个不是这种情况)。

此外,新创建的机器人的应用程序设置中缺少 MicrosoftAppIdMicrosoftAppPassword。在创建机器人的过程中有什么变化吗?

【问题讨论】:

  • 当您说“创建机器人”时,您的意思是在 Azure 上创建机器人吗?因为 8 月份,bot 框架使用的是 V3,现在他们已经发布了 V4。有些设置不一样,不。
  • 是的,完全正确。我在 Azure 上创建了一个新机器人。你能告诉我或分享一些链接,我可以在其中看到新设置吗?
  • 如果您将 MicrosoftAppIdMicrosoftAppPassword 设置为您在机器人本身中使用的内容,会发生什么? (您提到将它们保存在某个地方?)在创建过程中这两个键是autogenerated,否则它只会占用您在字段中输入的任何内容。
  • 因此生成 pass 的方式如 [link] (docs.microsoft.com/en-us/azure/bot-service/…) 中所述。我们在 repo 中使用了 Id 和 Pass 作为环境变量,因此我们能够创建连接到机器人的连接器。这些凭证对我们不起作用。此外,在我们之前构建的机器人中,在应用程序设置中我们清楚地看到了 MicrosoftAppId 和 MicrosoftAppPassword。现在,我们看不到这些变量。我试图手动将它们放在那里,但这并没有让我们得到我们想要的结果。

标签: node.js azure botframework


【解决方案1】:

microsoftAppId 列在settings 刀片上,但要生成密码,请务必关注this section of the documentation

在“设置”边栏选项卡中,单击“管理”。这是出现的链接 Microsoft 应用程序 ID。此链接将打开一个窗口,您可以在其中 生成新密码。在设置刀片中管理链接

单击生成新密码。这将生成一个新密码 你的机器人。复制此密码并将其保存到文件中。这是唯一的 到时候你会看到这个密码。如果您没有完整的密码 已保存,您将需要重复该过程以创建新密码 以后还需要吗。

并在您的机器人中将其设置在 .bot 文件中,而不是在 .env 文件中

.bot 文件示例,如果您没有,如下所示: 文件名:botName.bot

{
"name": "transcriptloggerBot",
"services": [
    {
        "type": "endpoint",
        "name": "development",
        "endpoint": "<host>/api/messages",
        "appId": "<MSappId>",
        "appPassword": "<MSappPassword>",
        "id": "1"
    }
],
"padlock": "",
"version": "2.0"
}

【讨论】:

    猜你喜欢
    • 2018-01-02
    • 2013-03-09
    • 1970-01-01
    • 1970-01-01
    • 2022-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2019-12-01
    相关资源
    最近更新 更多