0

在 Azure 机器人服务中指定 Node.js 版本似乎不起作用。

在 Azure 门户中,导航到机器人服务实例,然后在应用程序设置中将环境变量设置WEBSITE_NODE_DEFAULT_VERSION7.7.4,这是截至 2017 年 5 月 22 日可用的最高版本。然而事实证明 node.js 运行时仍然是v6.5.0

在 Kudu -> Environment 它显示:

WEBSITE_NODE_DEFAULT_VERSION = 7.7.4

Path = D:\home\site\deployments\tools;... D:\Program Files (x86)\nodejs\7.7.4;...

找不到此 v6.5.0 node.js 版本的设置位置。也许在 IIS 设置中?如果 azure bot 服务允许使用自定义的 node.js 版本而不是系统提供的滞后版本,那就太好了。那么是否有修复或解决方法?谢谢。

4

2 回答 2

1

目前 Azure Bot Service (Preview) 仅支持 Node.js v6.5 LTS,并且不提供您所描述的任何高级版本配置选项。

请记住,当您使用 Azure 机器人服务(预览版)创建机器人时,您正在创建一个 Azure Functions 应用(在后台)。Azure Functions 的 Node.js 版本锁定在 v6.5 ,如其文档中所述。

节点版本目前锁定在 6.5.0。我们正在研究添加对更多版本的支持并使其可配置。

如果您想安装和运行特定版本的 Node.js,您需要设置一个 VM 并将其配置为您的规范。

或者,您可以将 SDK Bot(也就是不使用 Azure Functions)部署到 Linux 上的 Azure App Service(预览版),这将允许您选择 v6.x LTS 范围内的 Node.js 版本,例如v6.10.2+ npm v3.10.10。在这种情况下,您必须在package.json“引擎”部分指定特定的 Node.js 和 npm 版本。您可以在我的博客文章中阅读有关此选项的更多信息:在 Linux 上将 Bot Framework 部署到 Azure

于 2017-05-25T19:55:51.263 回答
0

对于想要为其机器人自定义 node.js 版本的其他人,我找到了一种方法:使用 Azure App Service 而不是 Azure Bot Service。方法如下:

  1. 从 Azure 门户创建 Azure 应用,然后选择 node.js 模板
  2. (可选)配置持续交付
  3. 在 Bot Framework 门户中注册您的应用程序
  4. 启动 Kudu Cmd 控制台

    cd D:\home\site\wwwroot

    md 斌

    光盘盒

然后下载你喜欢的node.js版本,例如

curl -O http://nodejs.org/dist/latest/win-x64/node.exe
  1. 使用 Kudu,修改 D:\home\site\wwwroot\web.config 以指向您的条目 .js 文件(默认为 server.js)并添加以下行:

<iisnode watchedFiles="web.config;*.js"
    nodeProcessCommandLine="&quot;D:\home\site\wwwroot\bin\node.exe&quot;"
/>

按照上面的步骤,你就不再受锁节点 v6.5 的限制,随心所欲地使用最新的 node.js 特性。

于 2017-06-07T00:24:59.147 回答