常田です
Dedicated なBluemixでNode-RED Starter を利用する方法をご紹介します。
目次
IBMのPaaS環境であるBluemixの中でもユーザの専用区画で動作する Bluemix Dedicated 上で「Node-RED」を利用する方法
Dedicated 環境では、”サービス”においてもユーザの専用区画で動作するアラカルトが用意されています。
以下の環境では、右上の赤いマークがその印です。
Dedicatedで誤解される事してPublic上のサービスが一切利用できない、または全て利用できる、というものがあります。実際には、「一部サービスを除きのPublicのサービスが利用できる」です。そしてその中にはボイラーテンプレートも含まれます。
今回は、専用区画の Cloudant (CloudantNoSQL DBinternal)を利用して Node-RED を利用してみたいと思います。BluemixのNode-REDでは、構成データ(作成したデータ)は全てCloudantに保管されます。この事により、Node-REDを動かす node-js ランタイムを落としたりあげたりしてもデータが消えること無く利用できることになります。
Codeの入手
cfコマンド及びgit等が利用できることを前提としています。
上記のサイトよりソースコードをダウンロードします。画面の をクリックするか
git
コマンドでダウンロードします。
git clone https://github.com/node-red/node-red-bluemix.git
Cloudantサービスのオーダー
Catalogからオーダーをします。その際にService Name には 「アプリケーション名:cloudantNoSQLDB」とします。この例では 「nodered:cloudantNoSQLDB」としています。
#アプリケーションのデプロイ
manifest.yml の作成
解凍またはダウンロードしたディレクトリの配下にmanifest.ymlがありますが今回はこれは利用しません。¥public¥app のディレクトリ以下に新規に manifest.yml を作成します。
---
applications:
- name: nodered
instances: 1
memory: 512M
host: nodered
disk_quota: 1024M
command: node node_modules/node-red/red.js --settings ./bluemix-settings.js
services:
- nodered:cloudantNoSQLDB
内容は上位のようにします。 name はアプリケーション名で事前に用意してなくても cf push コマンドで自動的に作成されますが今回はサービスをbindしておく必要があるので以下の作業を行います。
サービスのバインド
cf push
を実行します。この際に、CloudantがBindされていないためエラーになりますがこれで枠が作られます。(もちろん普通にruntimeとしてnodejsを用意しても問題ありません)
cf bind-service nodered nodered:cloudantNoSQLDB
これでサービスがbindされた状態になります。
アプリケーションのデプロイ
cf push
再度プッシュを行うことで利用することが出来ます。
デプロイ後にアプリケーションとして以下が表示されていれば成功です。
Cloudant側にも情報が入力されていることが確認できます。
後は通常のパブリックのNode-REDなどと同じように利用できます。
まとめ
今回タイトル的にはDedicatedと書いていますがPublicでも利用することは出来ます。もし自身である程度事前に他のパッケージや「ノード」等を導入した状態で始めたい場合などは source codeを変更することでオリジナルの状態を作れます。
Node-REDは非常に簡単にプロトタイプなどが作成できますので是非Dedicatedユーザの方にもご利用頂ければと思います。