AzureAppService にnode.jsのアプリをデプロイすると500 error でページが表示されない
結論から言うと、web.configというファイルがないからです。
たとえば、以下のようなnode.jsのアプリを、ローカルでnode app.js
と叩いて、http://localhost:5000 でちゃんと動く以下のような簡単なnode.jsアプリがあるとします。
これを、AzureAppServiceにGithubから同期するなりZIP化してアップロードするなりしてみるとあらら~・・・
HTTP 500 ERROR
Azure AppはIISで動いているのでweb.configファイルが必要のようです。
web.configファイルはどこにあるの?
以下のやり方でとってきます(自己流)
- 公式マニュアルの、cloudシェル上でコマンドで作成していくやり方ではなく、Azureの画面で「Node JS Empty Web App」から作成します。
- 作成できたら、App Serivice Editorを開きます。
- デプロイされたコードの中に、web.configがあります。その中身をそのままコピーして、自分のプロジェクトフォルダ内にweb.configファイルを新規作成し、ペーストします。
- web.configファイルのコード内には
server.js
と記入してある箇所がいくつかあります。あなたがapp.jsをmainファイルにしているなら、server.js
をすべてmain.js
に置換しなければなりません。 - その他のAzureがデプロイしたファイル、iisnode.yml azuredeploy.json, HTMLPage.html等々は必要ないです。
半年前はこんなことする必要なかったんですけどね。何が起きたのマイクロソフトさん?
以上の情報は以下の電子ブックの一部から引用しました。
Node.jsとMicrosoft Azure App ServiceでTwitterボット作成vol2 Kindle版