FioneでPython連携

Fioneでh2o-3との連携にはREST APIを使っていたのだけど、データフレーム操作の細かいことをやろうとすると、謎が多いRapidsのエンドポイントを使う必要があり、データフレームの加工が厳しい状態だった。ということで、FioneからPythonを実行して、Python経由でh2o-3連携をすることにした。(基本的な操作は引き続きREST APIを使う予定) 汎用定期にしておきたいなー、と思い、ここにあるような感じで、Pythonファイルを置くことで、Fione(Java)からPythonコマンドを実行する。必要なパラメータ等はFioneがiniファイルを作成して、設定を渡すので、それに合わせて処理すればOK。一応、Fioneの画面上から実行したいので、画面上の入力項目はそのpyファイルを引数なしで実行してprint_module()のようなJSONを出力することで、Fioneの画面に入力欄が表示され、それがiniファイルとしてPythonの実行時に渡される感じ。なので、入力項目を含めてpyファイルに書いておけば、Fioneの画面上に表示されるので、Pythonファイルで任意の機能が追加できるようになる。

という感じで、拡張性が格段にました感じですが、今までFioneを本番環境での運用にどのように組み込んで利用すればよいか、という悩みがあったのですが、Python連携ができるようになったことで、本番環境のバッチ的なフローに関しては、このpythonファイルとiniファイルを取得できればh2o-3と直接やりとりができるので、問題が解決できる感じです。なので、Fioneで画面上でポチポチやって分析・開発して、運用環境へはpyとiniファイルを引き渡すことで、スムーズに一連の流れを進めることができるようになるはず。

もう少し手直ししたら、リリースしよう…。

FessでSlackへの通知

現在のFessでは、クロール完了やElasticsearchの状態検知の通知はメールでしかおこなえないけど、最近だとメールサーバを用意したりするのも面倒だったりするので、メール以外の手段として、Slackへの通知機能を追加しました。

13.6では管理画面からは編集できないので、system.propertiesに

slack.webhook.urls=https\://hooks.slack.com/services/...

という感じで指定する感じ。SlackのIncoming Webhookの作り方はここなどを参照してください。文面的なのを個別に用意するのも、ちょっと手間なので、現状のメールの仕組みを使って、送信しています。

NotificationHelperで実装しているので、興味があれば別の送信先とか追加してプルリクでも送っていただければと。