2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
Node-REDでプロジェクト管理を始めてみよう!(全1記事)
リンクをコピー
記事をブックマーク
船津浩司氏(以下、船津):株式会社ウフルの船津浩司と申します。今回は「Node-REDでプロジェクト管理を始めてみよう!」というテーマで、プロジェクト機能についてご紹介できればと思っています。
まず、私が何者かといいますと、株式会社ウフルでマーケティングを担当しています。例えば自分が担当する「enebular(エネブラー)」という製品のプレゼンやデモ制作、ドキュメントを書いたりといったことをしています。
enebularは弊社の製品で、ざっくり説明するとNode-REDにIoTの便利な機能を付けたサービスです。遠隔にあるデバイスに作ったフローを配信できたり、デバイスのログを確認できたり、という機能を持っています。もしよかったら使ってみてください。
そんな感じなので、僕自身は非エンジニアです。コードはぜんぜん書けなくて、ちょっとSQLが書けるくらいなんですけど、先ほど日立さんが説明していたノードの開発の諸々みたいなところはぜんぜん門外漢で、「こんな世界もあるんだ」という感じで聞いていました。
そんな僕が好きなノードは、node-red-contrib-line-messaging-apiという、LINEに配信できるノードです。ふだん慣れ親しんでいるアプリに何か結果を出せるので、自分自身も「俺なんか作ったな!」と思えるし、デモするときとかもイメージが掴みやすいのかなと思って気に入っています。
改めまして今回お伝えしたいことは、Node-REDのちょっと前のバージョンからですが、新しく追加されたプロジェクト機能で何ができるかということです。これを伝えた後にプレゼンテーション終わりには「あ、プロジェクト機能、ちょっと便利かも」「使ってみようかな」なんて思っていただけるとうれしいです。
その前に僕のNode-REDの使い方ですが、先ほど簡単に説明した通り、デモ作成で使っています。例えばイベントにいらっしゃったお客様の前で簡単な通知システムを作ったり、パートナーのソリューションと連携させたり、あとはハンズオンのプログラムを作ってみて「こんな感じだったら楽しめるかな?」とか、自社製品の魅力を伝えるために使っています。
日々使う中で、「Node-REDにこのプロジェクト機能があったらいいな」と思うことが多々あります。そういった中でNode-REDのこんなところがいいなと思っているのは、エンジニアじゃない僕でも簡単に作れるところと、あとはさっき「ちゃちゃっと作れる」と言ったみたいに本当にすぐに作れちゃいます。
さらに、コードが大量に書いてあると「……ウッ」と思ってしまいますが、Node-REDだとエンジニアじゃない方にも流れがわかるので「あ、なるほど。こんなことをやっているんだね」と、直感でわかる。そんなところがいいなと思っています。
一方でそういうことをやっていると、作ったデモのフローの管理や、自分ではなく他の人がデモをしたときにうまく作業ができないというのが僕の困りごとです。みなさんもこういう経験はあるんじゃないのかなと思います。
具体的にどういうことかと言うと、Node-REDは基本的に1つの環境に1つのフローのみという感じで、たくさんのフローを扱う作業はあまり想定していません。なので、僕は、flow.jsonのファイル名を変えたりしてストックする対応をしています。僕の知り合いには、たくさんタブを作って、そのタブごとに訂正したり有効化したりしてフローを管理されている方がいます。
慣れている方だとGitとかを使っている方もいらっしゃるかもしれませんが、どちらにせよフローを切り替えるというのは少し大変です。
さらにこのフローというのは実は複数のファイル、flow.jsonだけではなくて承認用の情報が入っているものや依存関係を整理したものなどが関係したファイルが3つあって、このflow.jsonだけではこれを完全に動作するプログラムというのを管理できないので、この単純に扱うファイル数が多いというのもちょっと面倒くさいところです。
共同作業では、Functionノードを2つ並べてみても違いはわかりにくいですよね。だから、Node-REDにどんな変更があったか1つ1つクリックして設定を見るという経験がある方はけっこう多いんじゃないかと思います。
さらにDiffを取ってみてもNode-REDのflow.jsonは1行に全部書いてあって、Diffを取ったら全部差分が出ているとか、あとは、ノードの位置が変わっただけでも差分に出ちゃうので、本当に意味がある差分はどれなのかというのを読解するのもけっこう難しいです。
デモを改善しても、新しいデモを共有するというのも少し難しかったりします。
そこで便利なのがプロジェクト機能です。デフォルトでは無効になっている隠し機能です。これを有効化すると新しい方式でフローを管理できます。さらに、Gitをご存知の方も多いと思うんですけど、エンジニアのみなさんが慣れ親しんだバージョン管理のシステムが使えます。
新しい管理方式というのは、これを有効化するとプロジェクトという概念でフローを管理することができます。GIFの動画を撮ってみたんですけど、本当にボタンのクリックで簡単に違うフローを開くことができます。もちろん元のフローに戻るのもすごく簡単です。
さらにNode-RED関連ファイルのディレクトリもプロジェクト単位で生成してくれて、同時にGitのファイルとかも作ってくれます。なので、ファインダーやエクスプローラーで見たときもわかりやすくなっています。さらに、Node-REDのプロジェクト機能で僕がすごく気に入っているところは、差分がすごくわかりやすい点です。
田中:いいですね。すごい。
船津:少しわかりにくいかもしれませんが、フローをいちいちクリックしなくても一覧で「ここに変更があったよ」みたいなことがすぐにわかります。Gitでみんながよく知っているNode-REDの画面からボタンクリックでクローンができたりプッシュができたりとか、そんなことができます。
せっかくなので、簡単にプロジェクト機能を実際の画面を通してご紹介できればと思います。
田中:よろしくお願いします。
船津:ライブだと緊張するんですけど、説得力があると思います。すごい簡単です。
田中:オンラインで応援しています。
船津:ありがとうございます(笑)。今はすごくシンプルなフローです。Injectノードがあって、Debugノードで見ています。これで、例えば僕が誰かに「このデモ使ってみてみてよ。良いよ」と言ったとします。
今までだとflow.jsonや認証情報を渡すプロセスが個別にあったと思うんですけど、このプロジェクト機能を有効にするとハンバーガーメニューのところから「プロジェクトを開く」みたいなものが出てきて「プロジェクトをクローン」という、まさしくGitっぽいことが書いてあるんですね。ここで任意のプロジェクト名を作って、リモートリポジトリのURLを入れます。
田中:これは公開のやつですね。
船津:そうです! 僕の場合はGitHubなのでGitHubのパスワードを入れて、これはNode-RED側で登録する認証情報の暗号化キーですね。これを入れてあげれば……できるかな? できた!
田中:おおー! すごーい!
船津:こんな感じで新しいフローを簡単に呼び出すことができます。今回は、僕のお気に入りのLINEに配信するというフローです。元のフローに戻るという場合もこんなふうにUI上のボタンをクリックすれば、すぐに戻れます。一度クローンしてしまえば簡単にそのフローを呼び出すことができます。
プロジェクト機能では、他に「プロジェクト履歴」というタブも新しくできています。例えばここで今「起きて!」という内容をLINEに送る。これは何を考えて「起きて!」と書いたのかはわからないんですけど(笑)。
こんなものが入っていて、これを「お知らせがあるよ!」みたいなものに変えてあげたとすると、今までだったらこれをデプロイして実行してみたいな感じだと思いますが、ここに本当にGitっぽくローカルファイルで変更がありましたというのが、こんな感じですぐにわかります。
配列を展開して「お知らせがあるよ!」という変更も確認できます。本当にステージングに上げると「メッセージを変更!」というコミットが見れます。もちろん今までの「こんな差分があったよ」みたいなことが遡って全部見ることができます。
さらにリモートリポジトリにつながっていて、ここに「あなたのリポジトリは1個進んでますよ」と、出ていますね。こういう状態のときはプッシュしてあげればGitHub上のフローも最新化されて最新のコミットのバージョンになります。
田中:ここはGitの操作ですね。
船津:本当にGitですね。
田中:はい。すばらしい。
船津:Functionノードなども行ごとに差分も見れるようになっていて、すごく便利です。
こんな感じの便利なプロジェクト機能なんですけど、まだちょっと物足りないところも実際にはあって、例えばGUI上から「このコミットのプログラムを呼び出したいな」という操作はまだできないみたいなんですね。
でも、実際にはGitが使えるので、さっきのプロジェクトのディレクトリに移動して、そこでGitコマンドを打てば普通にGitとして使えます。そこで前のコミットを呼び出したり、GitクライアントでSourcetreeを使ったりできると思うので、エンジニアのみなさんはNode-REDに馴染みやすくなるんじゃないかなと思います。
田中:すごい。
船津:結論としては、Gitを使わずにプロジェクトを切り替えるだけでもすごく便利なので、みなさんにぜひ使っていただきたいなと思います。足りないところはもちろんあるんですけど、そこはケースバイケースで柔軟に使っていただければと思っています。
この便利なプロジェクト機能を使うにはNode-REDのsetting.jsをfalseのところをtrueにするだけです。
田中:そういうことか。
船津:ぜひみなさん参考にしてみてください。本日はありがとうございました。
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術