メールでの通知以外の方法を検討しており、最近使っているSlackに通知を送るためのライブラリを作りました。
また、そのライブラリのソースを使ってバッチ処理などを実行した結果を送るアプリケーションを作りました。
(1)Slackへの通知を行うライブラリ
まずはSlackに独自のアプリを登録してトークンを取得する。
取得方法はこちらのページを参考に作成してください。
ライブラリはGithub上においています。
メソッドは一つしか無いので迷うことは無いかと思います。
クラス Sender2Slack メソッド sendMessage(String token,String channel,String text,Boolean asUser,String userName)
Javadocにも書いていますが各引数はこんな感じです。
・token 必須 Slackで登録したアプリのトークン
・channel 指定しない場合はgeneralに通知します
・text 必須 Slackに送る文言
・asUser trueの場合はアプリを作成したslackbotで、指定しないもしくはfalseの場合はuserNameで指定した名前で通知します
・userName asUserに指定しないもしくはfalseの場合に指定可能 指定しない場合はアプリ名で通知します
実行環境はJava8以上となります。
(2)シェルを実行した結果をSlackに送るアプリ
作ったKitalphaSlackを使ってシェルを実行した結果を送るアプリを作りました。(ただしKitalphaSlackのクラスも内包したjarになっているので、KitalphaSlack.jarは不要です)
こちらもJava8以上となります。入手はこちら。
パラメータはこれらです。
-token: 必須 Slackで登録したアプリのトークン 例) -token abcdefghijklmnopqrstuvwxyz
-shell: 必須 実行するシェルのパス 例) -shell /tmp/sample.sh
-channel: メッセージを送る先のチャンネル(デフォルトはgeneralになります) 例) -channel general
-output: メッセージの内容を定義します(デフォルトはoerになります。oer以外の値を設定した場合はエラーになります)
o…標準出力の内容
e…エラー発生時の出力内容
r…実行結果
例) -output oer
上の3つの組み合わせも使用できます。 例)標準出力+実行結果 → -output or
実際のコマンドはこれです。
java -jar ShellOutputSlack.jar -token abcdefghijklmnopqrstuvwxyz -shell / tmp/sample.sh -output o -channel random
設定に関する内容は-helpで見れます。
java -jar ShellOutputSlack.jar -help