ワークアラウンドですが。
前回まで
以前、enebularとFirebaseを組み合わせて、仮想の鉄道会社の運行情報ページを作成し、運行情報を色々変えられる仕組みを作りました。今回は、それをHerokuにデプロイして、ワークするかやってみました。
ただし、執筆時はenebularのAgentAppがNode.js 10系の環境で正しく動作しないため、ワークアラウンドの対応を入れて動作させています。予めご了承ください。
enebularのダッシュボードからHerokuにデプロイ
前回作ったフローの管理画面を開きます。この画面のDeploy Flow
を押すと、AWSやらHerokuやらに、このフローをデプロイすることができます。
ちなみに、今回デプロイしようとしているフローはこんな感じ。
特定のパスにアクセス(HTTP GET)があった時に、Firebaseに現在のダミーの運行情報を問い合わせて、その結果に応じてレスポンスで返すページの内容を変化させるもの。他にも、地味な実装が色々入っていて、
- 特定のパスにアクセスをすると、運行情報を変更できる
- 運行情報変更時に、変更されたことをTwitterに投稿する
- それ以外のタイミングでも定期的にTwitterに投稿する
- Herokuがスリープに入らないように、定期的に自分自身のページをGETする(上記フローには含まれていませんが、あとから追加しました)
さて、このDeploy Flow
ボタンを押してHerokuを選択すると、こんな感じのDialogが表示されます。
どのAppにDeployするか選択します。(予めHeroku向けのenebular Agent AppをHerokuにプッシュしておく必要があります。)デプロイ自体は一瞬で終了します。
Node-REDごとデプロイされる
Herokuから割り振られた自分のURLを叩くと、こんな感じでNode-REDへのログイン画面が現れます。
設計したフローがよしなに変換されてDeployされるわけではなく、Node-REDごとDeployされるので、Deployしたあとからでもフローを編集可能です。もちろん、enebularでフローを編集してから再度HerokuにDeployすることも可能です。そのへんはよしなに。
Heroku向けのAgent AppをPushしたときに設定したID/Passwordでログインすると、見慣れたNode-RED画面が表示されます。
今回はスマホからアクセスしてみましたが、フローの編集も簡単にできました。
実際にアクセス
フロー上で設定したURLにアクセスすると・・・
ちゃんと動いてそうですねぇ。そして、定期的に実行するように設定していたTwitterも・・・
ちゃんと投稿されてますねぇ。慣れてしまえば、シュッとデプロイできるので、プロトタイピングにはうってつけなのではないでしょうか。