az bot publish error: Not a valid azure publish directory. missing post deploy scripts

az bot publish error: Not a valid azure publish directory. missing post deploy scripts

我正在尝试部署使用 ms bot 框架 node.js sdk 版本 3 创建的聊天机器人代码。我正在使用 az cli 按顺序登录、创建和发布机器人。但是它在机器人发布步骤中失败了。发布命令如下:

az bot publish -n TestBot1333 -g MYRESOURCEGROUP --code-dir 1546598242066_chatbot

错误如下:

ERROR: Not a valid azure publish directory. missing post deploy scripts

看起来它需要 C# 代码而不是 Node.js。谁能告诉我如何将 Node.js 代码发布到 webapp 机器人。

谢谢

部署 Node 可能比应有的困难得多,尤其是由于缺少 V3 文档。我已经提交了对文档更改的拉取请求,以使其更容易。同时,我有一些您可以尝试的步骤(我已经在各种 V3 和 V4 机器人和创建方法上进行了测试):

注意:这些步骤也适用于 V4。只需将 v3 更改为 v4 即可。一般来说,这些步骤遵循the official docs

如果您尚未在 Azure 中创建 Web Bot 应用程序资源,请转到 Application Registration Portal:

  1. 添加应用程序 - 名称变为 <bot-resource-name>
  2. 新建
  3. 不勾选引导
  4. 复制应用程序 ID
  5. 生成密码并复制

如果您还没有创建剩余的 Azure 资源。从 bot 文件夹的根目录:

az login
az bot create --kind webapp --name <bot-resource-name> --location <geographic-location> --version v3 --lang <language> --verbose --resource-group <resource-group-name> --appid "<application-id>" --password "<application-password>"

为您的项目创建一个 .bot 文件(如果缺少)

在您项目的根文件夹中,运行:

msbot init

如有必要,请加密您的本地机器人。从 bot 文件夹的根目录:

msbot secret --new

复制生成的秘密并将其粘贴到您的 .env 文件中

将新创建的生产端点添加到本地机器人。从 bot 文件夹的根目录:

msbot connect endpoint --endpoint "https://<your-endpoint>.azurewebsites.net/api/messages" --name production --appId "<application-id>" --appPassword "<application-password>" --secret "<bot-file-secret>"

在 Bot 模拟器中打开 .bot 文件并根据需要添加剩余服务(LUIS、存储等):

  1. 在 Bot Framework Emulator 中打开机器人
  2. 在 Bot Explorer 窗格(左侧)中,单击服务旁边的 +
  3. 输入适当的信息并为每个使用的服务重复

如果您使用的是 v3,您可能需要准备机器人以供发布。从您的机器人文件夹的根目录:

az bot prepare-publish --name <bot-resource-name> --resource-group <resource-group-name> --proj-name "" --sln-name ""

注意:如果您要发布 C# 机器人,则需要根据需要填写 --proj-name--sln-name。如果你在节点中部署,你仍然需要包含它(现在),但是就像上面的例子一样使用空白参数。

将机器人发布到 Azure。从 bot 文件夹的根目录:

az bot publish --name <bot-resource-name> --resource-group <resource-group-name> --code-dir "." --verbose --version v3

注意:"emptying /site/wwwroot" 文件夹可能会超时。只需再次 运行 命令,直到它通过

注意:"installing node dependencies"时可能会出现500错误。忽略它,因为它仍然有效。

注意:您可能还需要进入应用服务并确保它具有正确的 botFileSecretbotFilePath 环境变量