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:
- 添加应用程序 - 名称变为
<bot-resource-name>
- 新建
- 不勾选引导
- 复制应用程序 ID
- 生成密码并复制
如果您还没有创建剩余的 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、存储等):
- 在 Bot Framework Emulator 中打开机器人
- 在 Bot Explorer 窗格(左侧)中,单击服务旁边的
+
- 输入适当的信息并为每个使用的服务重复
如果您使用的是 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错误。忽略它,因为它仍然有效。
注意:您可能还需要进入应用服务并确保它具有正确的 botFileSecret
和 botFilePath
环境变量
我正在尝试部署使用 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:
- 添加应用程序 - 名称变为
<bot-resource-name>
- 新建
- 不勾选引导
- 复制应用程序 ID
- 生成密码并复制
如果您还没有创建剩余的 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、存储等):
- 在 Bot Framework Emulator 中打开机器人
- 在 Bot Explorer 窗格(左侧)中,单击服务旁边的
+
- 输入适当的信息并为每个使用的服务重复
如果您使用的是 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错误。忽略它,因为它仍然有效。
注意:您可能还需要进入应用服务并确保它具有正确的 botFileSecret
和 botFilePath
环境变量