我正在尝试部署使用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机器人。
谢谢
答案 0 :(得分:0)
部署节点可能比原本困难得多,尤其是由于缺少V3文档。我已经提交了对文档更改的请求请求,以使其更容易。同时,我可以尝试一些步骤(我已经在各种V3和V4机器人和创建方法上进行了测试):
注意:这些步骤也适用于V4。只需将v3
更改为v4
就可以了。一般来说,这些步骤遵循the official docs
如果您尚未在Azure中创建Web Bot应用程序资源,请转到Application Registration Portal :
<bot-resource-name>
如果尚未创建,请创建剩余的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,存储等):
+
如果您使用的是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并确保它具有正确的botFileSecret
和botFilePath
环境变量