node.js - 如何使用 CLI 将 Microsoft botbuilder Nodejs 应用程序部署到 azure?

标签 node.js azure botframework

我正在尝试部署 basic-bot Azure 的 Microsoft Botbuilder 示例应用程序。

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

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

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

谢谢。

最佳答案

Is there a way to deploy a bot to azure for a Node.js app using the azure CLI?

是的,有。您可以键入 az botpublish -h 以获取发布机器人时可用的所有选项。以下是一些让它发挥作用的技巧:

  • 您需要使用 az login 登录 Azure
  • 确保您已设置有效订阅。输入 az account set -h 获取帮助。使用 az account list 查看您选择的订阅,使用 az account show 查看当前的事件订阅
  • 如果将要发布到的资源组设置为默认资源组,发布会更容易。与您的有效订阅不同,配置的默认值在您注销时不会重置。使用 az configure 查看当前的默认设置,使用 az configure -h 查看如何设置默认资源组
  • 如果您发布并显示不是有效的 azure 发布目录。缺少部署后脚本,那么您的 bot 文件夹中需要有一个 PostDeployScripts 文件夹

有一些instructions在部署脚本文件夹中,您可能会发现它很有帮助。请注意,作为 Azure CLI 的替代方案,您还可以使用 Azure 应用服务扩展从 Visual Studio Code 进行发布。

如果您发布成功,但在尝试在 Web Chat 中测试时遇到错误,则有时 Azure 需要一些插入。当我检查我的 channel Blade 时,它说网络聊天遇到了有关丢失文件的错误。我尝试了一些故障排除步骤,最终在没有任何实际更改的情况下使其正常工作。

  • 尝试在在线门户中注销您的 Azure 帐户,然后重新登录
  • 尝试在“构建”边栏选项卡的在线代码编辑器中运行代码
  • 再次尝试发布

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

关于node.js - 如何使用 CLI 将 Microsoft botbuilder Nodejs 应用程序部署到 azure?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52647533/

相关文章:

node.js - 在 Mac : inotify@1. 4.1 中不受支持

node.js - 使用 babel 将 JSX 转换为 JS

c# - Azure功能不通知我的机器人(机器人框架)

c# - 如何在提交操作时编辑 MS Bot Framework Adaptive Card

node.js - use_env_variable 在 sequelize 中返回 undefined

asp.net - Azure 上的 Web 应用程序和数据库主机

c# - 使用 C# 从存储在 Azure 存储中的 JSON 文件获取值

c# - "There was an error sending this message to your bot: HTTP status code NotFound"

azure - 使用 BotFramework 的 OAuthPrompt 和 Azure Oauth 2 通用提供程序获取 token 时出错

node.js - Node : "req.session.save is not a function" error during authentication