【问题标题】:How to deploy Microsoft botbuilder nodejs app to azure using CLI?如何使用 CLI 将 Microsoft botbuilder nodejs 应用程序部署到 azure?
【发布时间】:2019-03-09 21:27:06
【问题描述】:

我正在尝试将 basic-bot Microsoft Botbuilder 示例应用程序部署到 azure。

我首先通过 Azure 仪表板创建了一个新的 botbuilder node.js 示例应用程序,并且我能够成功地按照说明 here 下载并重新部署该应用程序。

然后我尝试将部署脚本和 .env 文件从下载的示例应用程序复制到基本机器人应用程序中,并尝试使用上面链接中的 az bot publish 命令进行发布。这成功部署了 basic-bot 应用程序,但部署的应用程序现在返回 500 错误。最初,500 错误是由未安装“botbuilder-ai”nodejs 包引起的。我通过 Azure 控制台手动安装了这个包,这个错误就消失了。但是应用程序继续抛出 500 错误,没有产生堆栈跟踪,我无法确定原因。

我发现唯一一个解释如何部署机器人的 official documentation 专门用于 C# 和 Visual Studio。有没有办法使用 azure CLI 为 Node.js 应用程序部署机器人到 azure?

谢谢。

【问题讨论】:

  • 明确地说,您使用的是 BotBuilder V4 而不是 V3,对吧?
  • 是的,我正在使用 botbuilder v4
  • 在尝试部署之前,您是否在模拟器中本地运行了 basic-bot 示例?
  • 是的,在本地运行良好。

标签: node.js azure botframework


【解决方案1】:

有没有办法使用 azure 为 Node.js 应用程序部署机器人 天蓝色 CLI?

是的,有。您可以键入 az bot publish -h 以获取发布机器人时可用的所有选项。以下是一些关于让它工作的提示:

  • 您需要使用az login 登录到 Azure
  • 确保您已设置有效订阅。输入az account set -h 寻求帮助。使用az account list 查看您的订阅选择,使用az account show 查看当前有效订阅
  • 如果将要发布到的资源组设置为默认值,发布会更容易。与您的活动订阅不同,配置的默认值不会在您注销时重置。使用az configure 查看您当前的默认值,使用az configure -h 查看如何设置默认资源组
  • 如果您发布并显示 Not a valid azure publish directory. missing post deploy scripts,那么您的机器人文件夹中需要一个 PostDeployScripts 文件夹

deploymentScripts 文件夹中有一些instructions,您可能会觉得很有帮助。请注意,作为 Azure CLI 的替代方案,您还可以使用 Azure 应用服务扩展从 Visual Studio Code 发布。

如果您成功发布并且在尝试在 Web Chat 中进行测试时遇到错误,则有时 Azure 需要一些轻推。当我检查我的频道刀片时,它说网络聊天遇到了有关丢失文件的错误。我尝试了一些故障排除步骤,最终在没有任何实际更改的情况下让它工作。

  • 尝试在在线门户中注销您的 Azure 帐户,然后重新登录
  • 尝试在构建刀片的在线代码编辑器中运行您的代码
  • 再次尝试发布

关于您尝试将下载的源代码重新用于部署基本机器人示例的具体情况,您需要了解一些事项。 .bot 文件非常重要,因为它包含有关机器人使用的所有服务的信息,但 basic-bot.bot 不包含任何所需信息。除了部署脚本和 .env 文件之外,您还需要复制 .bot 文件。但是,basic-bot 的 bot.js 期望 .bot 文件包含名为“basic-bot-LUIS”的 LUIS 服务,因此您需要进入 bot.js 代码并将 LUIS_CONFIGURATION 的值更改为 LUIS 服务的名称在您的 .bot 文件中(“BasicBotLuisApplication”,如果您下载了 V4 Basic Bot NodeJS 代码并保持不变)。在尝试发布之前,请确保您可以让 basic-bot 示例在本地运行。

【讨论】:

  • 凯尔,感谢您的回复。我没有在我的原始帖子中提到我已成功设置 LUIS,并且能够在本地运行该应用程序。我还能够使用 botframework-app-emulator 验证,并通过检查服务器日志,服务器在聊天请求中响应 500 错误,同时服务器似乎没有抛出错误堆栈跟踪。重新发布具有相同的结果。我将不胜感激您可以提供的任何其他建议。感谢您对此的帮助。
  • @jbeard4 - 当您说您正在使用机器人模拟器进行验证时,您的意思是您正在使用模拟器连接到您部署的机器人的 azurewebsites 端点吗?您尝试过哪些渠道的机器人?您可以使用 ngrok 调试已部署的机器人:blog.botframework.com/2017/10/19/…
  • “当您说您正在使用机器人模拟器进行验证时,您的意思是您正在使用模拟器连接到您部署的机器人的 azurewebsites 端点吗?”是,对的。部署的机器人在尝试聊天时收到 500。同时,网络聊天无法连接。 “你用什么渠道试过这个机器人?”我认为我没有在部署的机器人上设置频道。为了使用模拟器测试部署的机器人,是否有必要这样做?感谢您对此的帮助。
  • 所有机器人都会自动连接到网络聊天频道。无需连接到其他通道即可连接到模拟器中的端点,但如果机器人在某些通道中工作,它可以为您提供更多信息。您是否尝试过在网络聊天中测试机器人?你试过 ngrok 了吗?
  • “你试过在网络聊天中测试机器人吗?”网络聊天无法连接。它只是永远旋转。我认为这是因为服务器在尝试连接时返回 500。 “你试过ngrok了吗?” ngrok 用于使用我的本地服务器测试其他频道,对吗?目前,我的服务器在本地与模拟器一起工作,此时我不需要测试其他通道,所以我不确定 ngrok 是否会帮助我诊断我在 azure 中看到的部署问题。如果您有任何提示来诊断服务器返回 500 的原因,我将不胜感激。谢谢!
猜你喜欢
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 2018-01-19
  • 1970-01-01
  • 2017-11-06
  • 2018-06-05
  • 1970-01-01
  • 2017-05-26
相关资源
最近更新 更多