Node-RED起動時の動作をジッと見てみる

今回は、以前書いた記事でスルーしたNode-RED起動時のログをジッと見つめて動きを確認してみます。

起動時のログ

$ node-red
(node:68799) [DEP0128] DeprecationWarning: Invalid 'main' field in '/Users/wataru/.nvm/versions/node/v16.9.1/lib/node_modules/node-red/node_modules/@node-red/editor-client/package.json' of './lib/index.js'. Please either fix that or report it to the module author
(Use `node --trace-deprecation ...` to show where the warning was created)
21 Sep 21:46:48 - [info]

Welcome to Node-RED
===================

21 Sep 21:46:48 - [info] Node-RED バージョン: v2.0.6
21 Sep 21:46:48 - [info] Node.js  バージョン: v16.9.1
21 Sep 21:46:48 - [info] Darwin 19.6.0 x64 LE
21 Sep 21:46:58 - [info] パレットノードのロード
21 Sep 21:47:11 - [info] 設定ファイル: /Users/wataru/.node-red/settings.js
21 Sep 21:47:11 - [info] コンテキストストア : 'default' [module=memory]
21 Sep 21:47:11 - [info] ユーザディレクトリ : /Users/wataru/.node-red
21 Sep 21:47:11 - [warn] プロジェクトは無効化されています : editorTheme.projects.enabled=false
21 Sep 21:47:11 - [info] フローファイル     : /Users/wataru/.node-red/flows.json
21 Sep 21:47:11 - [warn]

---------------------------------------------------------------------
フローのクレデンシャルファイルはシステム生成キーで暗号化されています。

システム生成キーを何らかの理由で失った場合、クレデンシャルファイルを
復元することはできません。その場合、ファイルを削除してクレデンシャルを
再入力しなければなりません。

設定ファイル内で 'credentialSecret' オプションを使って独自キーを設定
します。変更を次にデプロイする際、Node-REDは選択したキーを用いてクレ
デンシャルを再暗号化します。

---------------------------------------------------------------------

21 Sep 21:47:11 - [info] サーバは http://127.0.0.1:1880/ で実行中です
21 Sep 21:47:11 - [info] フローを開始します
21 Sep 21:47:11 - [info] フローを開始しました

まず気になったのは「DeprecationWarning」の警告。メッセージでググるとNode.js v16を使っていると出力されるようです。無視していいらしいので気にしないでおきます。

それ以降はとてもわかりやすいですね。以下の情報が読み取れます。

  • Node-REDバージョン:v2.0.6
    • npmコマンドでインストールしたNode-REDのバージョン
  • Node.jsバージョン:v16.9.1
    • nvmコマンドでインストールしたNode.jsのバージョン
  • Darwin 19.6.0 x64 LE
    • OSのカーネルバージョン
  • 設定ファイル:/Users/wataru/.node-red/settings.js
    • ホームディレクトリ配下に「.node-red/」というディレクトリが作成されてその下にある「settings.js」が設定ファイルのようです
  • コンテキストストア:'default' [module=memory]
    • コンテキストストアは、ノード間で受け渡しされるmsgオブジェクトに頼らずノード間で情報を共有するための仕組みとのことです。説明を読む限りいわゆるグローバル変数みたいなものと認識しました。デフォルト動作はメモリ上に保存するので、Node-REDを再起動するとリセットされるようです。設定変更してファイルシステム上に保存すると、Node-REDを再起動しても消えなくできるようです。「グローバル変数」と聞くとバグの温床のイメージがあるので、注意は必要かもしれませんが、便利な場面もあるでしょう。頭の片隅に入れておきます。
  • ユーザディレクトリ:/Users/wataru/.node-red
    • 設定ファイルが保存されている場所がユーザディレクトリになるみたいです
    • ~/.node-red」ディレクトリはNode-RED初回起動時に自動的に作成されるようです
  • プロジェクトは無効化されています:editorTheme.projects.enabled=false
    • 無効化した覚えはないので、デフォルトで無効化されているんでしょうね
    • editorTheme.projects.enabled」パラメータをtrueにすれば有効化できるようです
    • そのうち使ってみます
  • フローファイル:/Users/wataru/.node-red/flows.json
    • エディタで編集したフローはここに保存されるようです
  • フローのクレデンシャルファイルはシステム生成キーで暗号化されています。〜
    • 何言っているかあまりピンときませんが、雰囲気的には「フロー内の認証情報が暗号化されていて、その暗号化に使ったキーはシステムが自動的に生成したもの。キーをなくすと暗号化した情報を復号化できなくなるから気をつけろよ」みたいなことを言っているのではないかと思います。環境単体だと気にしなくて良さそうですが、フローを共有する際はキーも共有しないとダメよって感じでしょうか。
  • サーバは http://127.0.0.1:1880/ で実行中です
    • ポート番号1880で待ち受けているようです
    • このURLにブラウザでアクセスしろってことですね

まとめ

~/.node-red」にいろいろ保存されるので、ここのバックアップを取っておけば環境は復元できそうです。「settings.js」でいろいろ設定変更できそうですが、この手の設定ファイルを手でいじるのは面倒なので、必要に迫られたら調べてみたいと思います。

コメント

このブログの人気の投稿

Execノードを使う

Joinノードを使う(その4)

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)