概要
Cron登録しているバッチの処理完了、エラーの通知をSlackに置き換えました。(メールだと埋もれるし見なくなるので)
非常に簡単だったのでコピペで使えるようにサンプルコードを紹介します。
手順
- Slack側でIncommingWebhookを登録してAPIトークンを発行する。
- CurlでPOSTする。
以上。
こちらの記事が詳しくてわかりやすいです。
http://qiita.com/tt2004d/items/50d79d1569c0ace118d6
コピペ用サンプルコード
詳しい使い方は先述の記事を読んでいただくとして、ここではコピペで使えるコードを紹介します。
ShellからSlack通知
#!/bin/bash
# Please Customize
SLACK_URL=https://hooks.slack.com/services/XXXXXXX #
FALLBACK_TEXT=testfallbacktext
PRE_TEXT=pretesxt
TITLE=title
TITLE_LINK=title_link
TEXT=text
COLOR='#7CD197'
EMOJI=:sob:
USER=username
MESSAGE=slackbottest
#send slack notification
function post_slack(){
ATTACHMENTS='{'\
'"fallback": "'$FALLBACK_TEXT'",'\
'"pretext": "'$PRE_TEXT'",'\
'"title": "'$TITLE'",'\
'"title_link": "'$TITLE_LINK'",'\
'"text": "'$TEXT'",'\
'"color": "'$COLOR'"'\
'}'
PAYLOAD=\
'payload={"text": "'$MESSAGE'", '\
'"icon_emoji": "'$EMOJI'", '\
'"username": "'$USER'", '\
'"attachments":['$ATTACHMENTS']}'
curl -X POST --data-urlencode "$PAYLOAD" $SLACK_URL
}
# How to Use
echo "DO SOMETHING"
if [ $? -gt 0 ]; then
# エラーの場合
TITLE="エラーが発生しました!!"
TEXT="確認してください!!"
post_slack
else
TITLE="正常に終了しました"
TEXT="安心してください。"
post_slack
fi
使い方
必要な変数に値を設定してpost_slack関数を呼ぶだけです。
メッセージの書式などは公式を参考にしてください。
https://api.slack.com/docs/message-formatting
https://api.slack.com/docs/message-attachments
以上です。