Node-RED 2系をAzure Web Appsで利用する #noderedjp #azure


Node-RED 2系をAzure Web Appsで使いたい

最初に、AzureでNode-RED動かしたいなと色々と調べてて動作したのがこちらのやりかたでした。

https://github.com/jmservera/node-red-azure-webapp

ただ、こちらはv1.0.6で固定されてたので2系にしようとしたらうまくデプロイできず。(まだ検証ちゃんとしてないけど)

Node-REDは最近2系にアップデートされて結構中身が変わってるので2系をなんとか使いたいところ。。。ということで調べてましたが@horihiroさんのリポジトリからうまくいけました。

ほりひログ 2018-12-09 (勝手に)続・Azure Web AppでNode-REDを動かす手順

終わってみると簡単にいけた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

app.js
//省略

// 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で質問しながらうまく動かす事ができました、ありがとうございます!!