Azure Bot服务设置node.js版本无法正常工作

时间:2017-05-22 23:30:59

标签: node.js botframework azure-bot-service

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

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

在Kudu - >环境显示:

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版本而不是系统提供的滞后版本,那将是很好的。那么有修复或解决方法吗?感谢。

2 个答案:

答案 0 :(得分:1)

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

请记住,当您使用Azure Bot服务(预览)创建机器人时,您正在创建Azure功能应用程序(在后台)。 Azure Functions将其Node.js版本锁定为v6.5 as described in their documentation.

  

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

如果您想安装并运行特定版本的Node.js,则需要设置VM并根据您的规范进行配置。

或者,您可以将SDK Bot(也称为不使用Azure功能)部署到Linux上的Azure应用服务(预览),这将允许您在v6.x LTS范围内选择Node.js版本,例如{ {1}} + npm v6.10.2。在这种情况下,您必须在v3.10.10"引擎"中指定特定的Node.js和npm版本。部分。您可以在我的博客文章中详细了解此选项:Deploying Bot Framework To Azure On Linux

答案 1 :(得分:0)

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

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

    cd D:\ home \ site \ wwwroot

    md bin

    cd bin

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

    curl -O http://nodejs.org/dist/latest/win-x64/node.exe
    
    1. 使用Kudu,修改D:\ home \ site \ wwwroot \ web.config以指向您的条目.js文件(默认为server.js)并添加以下行:
    2. <iisnode watchedFiles="web.config;*.js"
          nodeProcessCommandLine="&quot;D:\home\site\wwwroot\bin\node.exe&quot;"
      />

      按照上述步骤,您不再受锁定节点v6.5的限制,并可以根据需要使用最新的node.js功能。