az bot发布错误:不是有效的azure发布目录。缺少部署后脚本

时间:2019-01-10 14:31:55

标签: node.js botframework publish azure-cli

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

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机器人。

谢谢

1 个答案:

答案 0 :(得分:0)

部署节点可能比原本困难得多,尤其是由于缺少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资源。从漫游器文件夹的根目录:

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

如有必要,对您的本地漫游器进行加密。从漫游器文件夹的根目录:

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 Emulator中打开.bot文件,并根据需要添加其余服务(LUIS,存储等):

  1. 在Bot Framework模拟器中打开bot
  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。从漫游器文件夹的根目录:

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

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

注意:“安装节点依赖项”时可能会出现500错误。忽略它,因为它仍然有效。

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