LoginSignup
0
2

More than 3 years have passed since last update.

IBM Cloud上のNode-redが使うCloudantを変更する際の変更箇所

Posted at

目的

まぁ、色々とアーキテクチャ考えている中で、ふとCloudantを繋ぎ変えてみたくなったのです。

変更する箇所

分かる人には分かるということで十分な情報かと思いましたのであまり細かく書きませんが。。

管理画面より

  • 「接続」でCloudantをバインドし直す。この際、古い方のアンバインドの際は再ステージ不要だと思うんですが、新しい方をバインドする時には再ステージしないと反映されません。ただ、この段階で再ステージしたところでエラーにはなります。エラーは気にせず下記を実施します。
  • (ちなみに、試しに複数のCloudantのバインドも普通に出来ます。この場合、私はNode-red内でprocess.envあたりからCloudantへの接続情報取って来てたんですが、配列の順番がバインドした順番ではなく別なソートがかかってるみたいなので、元々のCloudantは[0]で取ってくるということが出来ず困りました。まぁ余談です。)
  • 環境変数でNODE_RED_STORAGE_NAMEという変数を新規で作成し、新しくバインドしたCloudantのサービス名を入れる。この際の名前は「接続」で表示される名前を使う。(地味にbluemix-settings.jsの中で使われていて、ここ見落としてたのでしばらくアプリ起動が出来ずハマった。)

設定ファイルより

  • manifest.ymlの下部にserviceという項目があるので、そこを修正する。この際のサービス名も「接続」で表示される名前でOK。

再ステージが完了すると

manifest.ymlの修正をコミットしてツールチェーンにより再ステージが完了したら、/redを叩いてもエラーが帰って来るようになります。何もファイルが無いからです。
なので、/を叩いてNode-redの再設定を行うと、新しいCloudantにnoderedデータベースがなければ作成され、既にあれば、その配下にNode-redのサービス名/flowなどのファイルが作成されて来て普通に使えます。
もし元々のFlowを使いたい場合は、前のCloudantのnoderedデータベースを消してなければそこのFlowをコピーしてくれば大丈夫です。

以上です。
紆余曲折ありましたが、最終的には以外とシンプルに変更できました。

0
2
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
0
2