久しぶりの技術ネタですが、BluemixでNode-REDを使っていたら、急にデプロイがエラーになり始めました。
デプロイが失敗しました: {“error”:”unexpected_error”}
なんぞこれ?
だいたい、ノードの編集をしなくても(まったくしないとデプロイできないので、空のフローを追加してみる)、エラーなのだから、環境の方が怪しいですね。
Bluemixのダッシュボードからアプリのログを見てみても(Node-REDのCloudFoundaryアプリを開いて、画面左のサイドメニューから「ログ」)、たしかにエラーは出ていますが、具体的な理由とかがない・・・。
強いていえば、デプロイの直前に自動的に行われると思うフローの保存が失敗しているのが気になる。
BluemixのNode-REDでは、フローデータはCloudantに保存されます。やや、Cloudantか?
Cloudantの空き容量不足が原因か?
Cloudantの方を見てみると、案の定、エラーが出ています。どうやら、これが理由じゃないか?
無料プランではCloudantは1GBのストレージを使用することができます。Node-REDのフローデータくらいなら、何の問題もないのですが、私はWatson IoTからのセンサーデータの蓄積をCloudantに行っているのです。
蓄積といっても、あくまで実験レベルだから、デバイスは基本的に1個、デバイスに接続されているセンサーは気温、明るさ、音量の3つ。強いていえば5秒毎というデータ送信頻度が多めかもしれませんが、3ヶ月半ほどの運用で1GBを使い果たしてしまったようです。
で、いちおう過去のデータベースを削除してみました。(Watson IoTからCloudantにデータを蓄積する場合、設定次第で月毎または週毎にデータベースが分割されます。) でも、すぐには反映されず、まだデプロイできない状態です。
Storage assessments occur once every 24 hours.
ということなので、容量が反映されるまで24時間待ってみて、再度、試してみようと思います。
<追記>やはりCloudantの容量不足が原因だった
翌日になって、いちおう削除した分の容量は空いたのですが、”Your Lite account contains over 1GB of data”というメッセージが消えませんでした。まだ削除する必要があるのかもしれませんが、この際、1GBでリミットとなるLiteプランから20GBまで無料で使えてその後は課金になるStandardプランに変更することにしました。
これでCloudantのリミットが外れ、Node-REDのデプロイも問題なく行えるようになりました。