Azure webappsでnode アプリをdeployするときに困ったこと
AZURE WEB APPSでnodeアプリをデプロイ時にCERT_UNTRUSTEDが出る
という現象にハマった。
色々調べてみるとそもそもこのエラー自体がversionに起因するものみたいだ。
とはいえ、web appのversion指定ってどこでやるんだろうか。
まず思ったのがazure portalの設定で
アプリケーション設定に
WEBSITE_NODE_DEFAULT_VERSIONというのがあるのでここを設定。
しかしデプロイ時に使うのはここのバージョンではないようだ。
調べてみると
package.jsonに
"engines": { "node": ">=0.10.0" }
とか書くとこれが利用されるっぽい。
startしない
ライブラリにazure-storageを利用している。
この内部で
require('util')._extend
を実行していて、_extendはundefined。
確かにnodeの0.6系だとこのメソッドは存在しないようだ。
ということで、nodeを最新に上げておこう。
nodeのwindowsバイナリの新しいやつを持ってきて、
wwwroot\binに配置
いつのタイミングか分からんが自動生成される iisnode.ymlに
nodeProcessCommandLine: D:\home\site\wwwroot\bin\node.exe
という風に書き換えて再スタート!