さて、 Node.js 8.0.0 version が 2017-05-30 にリリースされました。
Azure Web Apps で早速使えるか試してみます。
該当のドキュメントはこの辺です。Azure アプリケーションでの Node.js のバージョンの指定
結論
Azure Web Apps で最新の v8.0.0 がすでに利用可能でした。
しかも、2017-05-30 のリリースから、3, 4日後に最新バージョンが利用可能になってます。
詳細
ドキュメント上では、Web App で Node.js のバージョンを指定する方法は下記の3つ。
-
-
WEBSITE_NODE_DEFAULT_VERSION
にデフォルトバージョンが指定されているので、それを目的のバージョンに設定&上書きする。
-
-
-
package.json
の"engines":{"node":version}
部分に目的のバージョンを設定する。
-
-
-
iisnode.yml
で任意の node.exe を使う。
-
結果的に、2 の方法で一番簡単に実現できました。package.json 上で変更すると、デプロイ先が複数ある場合に(例:dev, test, staging, production)、想定外の設定忘れなどが無く、運用上良いかと思います。
検証するために、Node.js のコードは以下のような具合にバージョンを出力するようにしておきます。
var http = require('http');
var server = http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello world on nodejs version " + process.version);
});
var port = process.env.PORT || 1337;
server.listen(port);
});
2017/06/06 の時点では、Web App デプロイ直後、環境変数
WEBSITE_NODE_DEFAULT_VERSION は、6.9.1 でした。
もしここで、package.json
の engines に以下のように 6.9.1 以上、というように指定していると、最新バージョン v8.0.0 で実行されます。つまり、優先度は、package.json > 環境変数 WEBSITE_NODE_DEFAULT_VERSION のように動作しています。
"engines": {
"node": ">=6.9.1"
}
Hello world on nodejs version v8.0.0
特定のランタイムバージョンを固定して利用したい場合は、以下でOKです。Web App もこの設定に追随します。
"engines": {
"node": "6.9.1"
}
Hello world on nodejs version v6.9.1
ちなみに
Web App で利用可能なランタイムバージョンを調べるには、Kudu なりで、D:\Program Files (x86)\nodejs
の下を確認すればOKです。
D:\Program Files (x86)\nodejs>ls -l | tail
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Apr 2 00:17 7.3.0
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Apr 2 00:17 7.4.0
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Apr 2 00:17 7.5.0
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Apr 2 00:17 7.6.0
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Jun 2 21:12 7.7.4
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Jun 2 21:11 8.0.0
-rwxr-xr-x 1 Unknown+User Unknown+Group 4699496 Jul 10 2012 node.exe
drwxr-xr-x 1 Unknown+User Unknown+Group 0 Apr 2 00:05 node_modules
-rwxr-xr-x 1 Unknown+User Unknown+Group 274 Jul 10 2012 npm
-rw-r--r-- 1 Unknown+User Unknown+Group 209 Jul 10 2012 npm.cmd
なんと、 Jun 2 21:11 8.0.0
!!!
2017/05/30 の最新 8.0.0 バージョンのリリースから、数日後(※コンソール出力のタイムゾーンはUTC)には利用できるようになっているではないですか。 最新バージョンをいち早く使いたい場合でも、数日待てば使えるのであれば、それほど心配は要らないですね。