はじめに
Node-REDからCloudantを使ってデータ処理をする方法というのは、とても簡単なのですが、簡単が故にあまり手順なども公開されていないように感じたのでここにまとめておきます。
環境
ここでは、以下の環境が作成済みであることを前提に進めます。
・IBM Cloud上にNode-REDが作成されている・CloudantのサービスがNode-REDへ接続されている
通常はIBM Cloud上でNode-REDを作成すると、必ずCloudantと接続されるので問題はないかと思います。
CloudantにDBを作成する
まず、Node-REDからデータを登録や検索するためのデータベースを作成します。IBM Cloudのダッシュボード上のリソースリストから、Cloudantサービスをクリックします。
Cloudantサービスの管理画面にCloudantダッシュボードの起動ボタンがありますのでそれをクリックします。
別ウィンドウでCloudantのダッシュボードが開きますので、画面右上にあるCreate Databaseボタンをクリックしてデータベースを作成します。
これでOKです。
Node-REDでフロー作成
Node-REDでは、以下のようなフローを作ってみます。
上段のフローでは、injectノードとcloudant outノードをつなげています。injectノードでは、Cloudantへ格納したいデータをJSON形式で設定しておきます。
下段のフローでは、injectノードは単なるトリガーで、cloudant inノードで値を取得し、debugノードでその値を出力しています。
このフローの定義はこちらになりますので、インポートしてご利用ください。(DBへの接続情報はご自身のものへ合わせてください)
[
{
"id": "aa58139e.6b301",
"type": "tab",
"label": "Flow 2",
"disabled": false,
"info": ""
},
{
"id": "1a31d24d.11e18e",
"type": "inject",
"z": "aa58139e.6b301",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "{\"name\":\"Taiji\",\"id\":\"12345\"}",
"payloadType": "json",
"x": 120,
"y": 140,
"wires": [
[
"6784b7d8.2e6718"
]
]
},
{
"id": "6784b7d8.2e6718",
"type": "cloudant out",
"z": "aa58139e.6b301",
"name": "",
"cloudant": "",
"database": "DB名",
"service": "Cloudantサービス名",
"payonly": false,
"operation": "insert",
"x": 400,
"y": 140,
"wires": []
},
{
"id": "930e1a8d.754b18",
"type": "inject",
"z": "aa58139e.6b301",
"name": "",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "",
"payload": "",
"payloadType": "date",
"x": 120,
"y": 220,
"wires": [
[
"3be0e0b1.f308e"
]
]
},
{
"id": "3be0e0b1.f308e",
"type": "cloudant in",
"z": "aa58139e.6b301",
"name": "",
"cloudant": "",
"database": "DB名",
"service": "Cloudantサービス名",
"search": "_all_",
"design": "",
"index": "",
"x": 380,
"y": 220,
"wires": [
[
"5e82632a.d82f9c"
]
]
},
{
"id": "5e82632a.d82f9c",
"type": "debug",
"z": "aa58139e.6b301",
"name": "",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 600,
"y": 220,
"wires": []
}
]
これでDeployボタンを押してデプロイを完了してください。
実行
先ず上段のフローから実行してください。Node-RED上にはSuccessfulのメッセージが出ます。Cloudantのダッシュボードを見ると、対象のデータベースへJSONデータが格納されたのが確認できます。
次に、下段のフローを実行してください。Node-REDのデバッグウィンドウに、取得したオブジェクトが表示されることが確認できます。
まとめ
いかがでしょうか?非常に簡単に、データの永続化及び取得処理ができたのではないでしょうか。
これが基本操作になりますので、これを基にいろいろと試してみてくださいね。