はじめに
enebularは、フローエディタで作成したNode-REDのフローを、RaspberryPiやHeroku、AWS Lambdaなどにデプロイして実行する機能を提供しています。
enebular-agentで何かを作る改め紹介&使い方の記事では、RasperryPiなどのデバイスでenebularで作成したフローをデプロイ、実行するときにデバイスにインストールして利用するenebular-agentが紹介されています。
この記事では、Heroku環境にフローをデプロイ、実行するときに必要となるenebular-agent-herokuについて紹介しようと思います。
enebular-agent-herokuとは
enebular-agent-herokuは、enebularがフローをHerokuにデプロイするときに、デプロイ先のHeroku環境に予めデプロイしておく必要があるアプリです。
enebularでフローのデプロイ先のHeroku環境を選択するダイアログにDeploy to Heroku
ボタンがあります。
これがHerokuにenebular-agent-herokuのデプロイを行うボタンです。
Deploy to Heroku
ボタンを押すと、以下のようなHerokuの画面が表示されます。
App name、USERNAME、PASSWORDを入力し、Deploy
ボタンを押すとデプロイが開始します。
注意: AGENT_HEROKU_VERSIONという項目もありますがこの値は変更しないでください
enebular-agent-herokuの仕組み
enebular-agent-herokuをHeroku環境にデプロイすると、Heroku Postgres
add-onも追加されます。
enebularからフローをデプロイすると、デプロイしたフローはPostgreSQLに保存します。
通常のNode-REDの場合フローをファイルに保存しますが、Herokuの場合デプロイしたアプリでファイルを利用できないため、PostgreSQLに保存します。
デバッグ
フローの開発・デバッグは通常以下のような流れになります。
- enebularのフローエディタでフローを開発する
- フローエディタ上でフローを実行して動作確認する
- 不具合があればフローエディタでフローを修正する
- 不具合がなくなったらHerokuにフローをデプロイする
- Heroku上で動作確認する
- 不具合があったら3に戻る
上記の流れでは、5のHeroku上での動作確認において不具合が見つかった場合に3に戻るため少々手間がかかります。
Herokuでのデバッグが頻繁に発生するような開発の場合は、直接Heroku上でフローを編集することもできます。
編集するには、デプロイ先のHerokuの以下のURLにWebブラウザでアクセスします。App nameはenebular-agent-herokuデプロイ時に指定したApp nameです。
https://<App name>.herokuapp.com/red/
以下の画面が表示されます。
ユーザ名とパスワードに、enebular-agent-herokuのデプロイ時に指定したUSERNAME/PASSWORDを入力してログインするとフローエディタが表示されます。
ここでフローを編集し、右上のデプロイボタンで保存・実行することができます。
実行環境であるHeroku上で直接フローを編集できるためデバッグが効率化できます。
ただし、ここで保存したフローはこのHeroku環境のPostgreSQLにのみ保存します。つまり、enebularに保存されているデプロイ元のフローは変更されません。デバッグが終わったらenebularに登録されているフローにも変更内容を反映するようにしてください。
まとめ
簡単ではありますが、enebular-agent-herokuについて紹介しました。
enebularを使うと、クラウド(Heroku)上にNode-REDの開発・実行環境を簡単に構築できますので、クラウドでNode-REDを運用したい場合にお試し頂けると幸いです。