5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PORTAdvent Calendar 2017

Day 12

Node Redの紹介

Last updated at Posted at 2017-12-18

Node-REDの紹介

自宅オンプレミスでCIサーバーを作りたかったので、色々調べたときに、ふと見つけたOSSを紹介します。

注意

信頼境界の概念を
セキュリティは最低限行いましょう

Node-REDとは?

  • もともとはIoT用として作られた

なぜ、そのようなものを作ろうかと思ったのか?

  • Mac環境を使ったセキュアな自作CIサーバーが欲しかった
  • electronのビルドに必要
  • 原因は不明だが、何故かうまくいかない
    • travis ci 仮装mac環境
    • circle ci 仮装mac環境 <=お金かかるのでしていない

どんなことに使えるか

  • slackで通知されたら、ローカルであるプログラムを起動したい
  • 私設サーバーに機密情報をおきたくない
  • IoTを使って、温度などを定期的に取りたい
  • 情報のフローを頻繁に変えたい
  • めんどくさいプログラミングしたくない
  • 速さよりも機能

使ってみて感じたこと

  • マイナーバージョンリリースではあるが使えるユースケースは多そう
  • 初期設定では、セキュリティ機能は一切ないので、第3者からいじり放題
    • サーバーにおセキュリティを自分ですべてしなければならない
    • https化、dockerとか (結構敷居高い)
    • 専門の人にやってもらったほうがいいかも

遭遇したバグ

Node-REDのセキュリティ関連の機能は、nginxプロキシをさせると、一部がバグる(パレッド画面に移動しないなど)
名称未設定ファイル.png (44.4 kB)

Node-REDの起動方法

$ mkdir -p $HOME/Desktop/nodered/data
$ docker run -it --rm \
-p 1880:1880 \
-v $HOME/Desktop/nodered/data:/data \
--name app-nodered \
nodered/node-red-docker
  • -p 1880:1880
  • $HOME/Desktop/nodered/data
    • Node-Redの設定ファイル、プログラミング情報が保存されている

$HOME/Desktop/nodered/dataが自動的に作られる
ディレクトリ構成はこんな感じ
スクリーンショット 2017-11-08 08.29.19.png (27.2 kB)

http://localhost:1880/ 」にアクセスしてて

画面のパーツの説明

パーツは大きく分けて、3つに別れる

名称未設定ファイル (1).png (41.8 kB)

実際に触れてみよう

  1. プログラミングを行うには、「左の flow メニュー」からドラッグ&ドロップで要素を選ぶ
    名称未設定ファイル (2).png (37.2 kB)

  2. 要素をダブルクリック。各flowに詳細設定を行う(なんのURLをトリガとするか)
    スクリーンショット 2017-11-08 08.51.54.png (84.1 kB)

  • 各項目の説明
    • メソッド(どのメソッドをトリガとするか)
    • URL (どのパスから来たものをイベントとしてトリガーするか)
    • 名前 (Node Red内部で使う、ラベルのようなもの)

プログラミングしてみよう

最小構成

httpで/testにGETでアクセスすると、何かしらのデータが入ってくるものを作る

スクリーンショット 2017-11-08 09.00.56.png (25.7 kB)

flowの設定を書き換える

スクリーンショット 2017-11-08 08.54.26.png (20.7 kB)

デプロイボタンでデプロイ

スクリーンショット 2017-11-08 09.01.05.png (4.8 kB)
$ curl http://localhost:1880/test\?payload\=messages
{"payload":"messages"}%

slackとの連携

slack との連携をするには、plaginが必要になる

プラグインのインストール

名称未設定ファイル (4).png (45.8 kB)

コレ選択。右下の「ノードを追加」をクリックすると、インストールができる
名称未設定ファイル (5).png (35.0 kB)

slackのflowが使えるようになります。

スクリーンショット 2017-11-08 11.02.50.png (23.6 kB)

slackbotのapi tokenを使用することで、slack簡単に連携することができます。

名称未設定ファイル (6).png (16.4 kB)

slackを用いた、全体的なフロー図はこのようにしました

名称未設定ファイル (3).png (64.3 kB)

セキュリティについて

Node-REDには、セキュリティ機能として、ユーザ管理機能が一応実装されている(詳しくはここを見よう)

(といっても、ハードコーディングなのだが)
スクリーンショット 2017-11-08 08.34.29.png (80.3 kB)

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?