Node-RED 2系をAzure Web Appsで使いたい
最初に、AzureでNode-RED動かしたいなと色々と調べてて動作したのがこちらのやりかたでした。
ただ、こちらはv1.0.6で固定されてたので2系にしようとしたらうまくデプロイできず。(まだ検証ちゃんとしてないけど)
Node-REDは最近2系にアップデートされて結構中身が変わってるので2系をなんとか使いたいところ。。。ということで調べてましたが@horihiroさんのリポジトリからうまくいけました。
終わってみると簡単にいけた2系のデプロイ
horihiro/node-red-webappのリポジトリからAzureにデプロイしていきます。
2系というか最新が入る模様ですね。
For Windowsの方のボタンで進めていきます。Linuxはまだ試してません。
リポジトリのURLとブランチを確認
が今のところ良いっぽいです。
あとはそのままデプロイします。
動いた
アプリ名.azurewebsites.net
にアクセスすると、最初はnot started
とか出る場合ありますが、サーバーが寝てたりすると発生します。
リロードするとサーバーが起きてるので管理画面が表示されます。
無事に2系!
パスワードをかけるなど
App Service Editorの画面からapp.js
の設定を編集できます。
app.jsのsettingsの部分がNode-REDの設定になります。
- 管理画面のパス変更
デフォだとhttpAdminRoot
が/
になってますが、/kanrigamen
などにするとアプリ名.azurewebsites.net/kanrigamen
にアクセスした際に管理画面が見れるようになります。
- パスワード設定
adminAuthを設定するとログインユーザーやパスワードを設定できます。
これはNode-RED公式を参考にした方が良いかもしれません。
https://nodered.jp/docs/user-guide/runtime/securing-node-red
//省略
// Create the settings object - see default settings.js file for other options
var settings = {
httpAdminRoot:"/kanrigamen", //管理画面のパスを変更
httpNodeRoot: "/",
userDir:".",
flowFile: "flows_" + (process.env.WEBSITE_SITE_NAME || process.env.APPSETTINGS_WEBSITE_SITE_NAME ? process.env.WEBSITE_SITE_NAME || process.env.APPSETTINGS_WEBSITE_SITE_NAME : require('os').hostname()) + ".json",
functionGlobalContext: { }, // enables global context
// Securing Node-RED
// -----------------
// To password protect the Node-RED editor and admin API, the following
// property can be used. See http://nodered.org/docs/security.html for details.
adminAuth: {
type: "credentials",
users: [{
username: "admin",
password: "$2a$08$zZWtXTja0fB1pzD4sHCMyOCMYz2Z6dNbM6tl8sJogENOMcxWV9DN.",
permissions: "*"
}]
},
};
//省略
app.jsを編集したら挙動が怪しくなる時があるので再起動推奨です。
おわりに
@horihiroさんにDMで質問しながらうまく動かす事ができました、ありがとうございます!!