常田です

Dedicated なBluemixでNode-RED Starter を利用する方法をご紹介します。

IBMのPaaS環境であるBluemixの中でもユーザの専用区画で動作する Bluemix Dedicated 上で「Node-RED」を利用する方法

Dedicated 環境では、”サービス”においてもユーザの専用区画で動作するアラカルトが用意されています。
以下の環境では、右上の赤いマークがその印です。

NewImage

Dedicatedで誤解される事してPublic上のサービスが一切利用できない、または全て利用できる、というものがあります。実際には、「一部サービスを除きのPublicのサービスが利用できる」です。そしてその中にはボイラーテンプレートも含まれます。

今回は、専用区画の Cloudant (CloudantNoSQL DBinternal)を利用して Node-RED を利用してみたいと思います。BluemixのNode-REDでは、構成データ(作成したデータ)は全てCloudantに保管されます。この事により、Node-REDを動かす node-js ランタイムを落としたりあげたりしてもデータが消えること無く利用できることになります。

Codeの入手

cfコマンド及びgit等が利用できることを前提としています。

上記のサイトよりソースコードをダウンロードします。画面の NewImage をクリックするか gitコマンドでダウンロードします。

git clone https://github.com/node-red/node-red-bluemix.git

Cloudantサービスのオーダー

Catalogからオーダーをします。その際にService Name には 「アプリケーション名:cloudantNoSQLDB」とします。この例では 「nodered:cloudantNoSQLDB」としています。

NewImage

#アプリケーションのデプロイ

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された状態になります。

NewImage

アプリケーションのデプロイ

cf push 

再度プッシュを行うことで利用することが出来ます。
デプロイ後にアプリケーションとして以下が表示されていれば成功です。

NewImage

Cloudant側にも情報が入力されていることが確認できます。

NewImage

後は通常のパブリックのNode-REDなどと同じように利用できます。

まとめ

今回タイトル的にはDedicatedと書いていますがPublicでも利用することは出来ます。もし自身である程度事前に他のパッケージや「ノード」等を導入した状態で始めたい場合などは source codeを変更することでオリジナルの状態を作れます。
Node-REDは非常に簡単にプロトタイプなどが作成できますので是非Dedicatedユーザの方にもご利用頂ければと思います。