この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
おばんです、先日地元の仙台に帰ったとき、観光客気分ではじめてずんだシェイクを飲んだら、美味しすぎてハマった田中です。
案件で Treasure Data社 の OSSワークフローエンジン 『Digdag』 を利用することがあり、その中でSlack通知を実装することがあったので、今回はその方法をまとめます。
インストール
以下の記事の Digdagのインストール実施 を参考にDigdagをインストールしてください。
SlackのIncoming Webhook URLを取得する
以下の記事の Webhook URL取得 を参照してください。
DigdagのSlack Pluginを使う
上記リポジトリのsampleディレクトリ内にある.dig
ファイルと成功時/失敗時の.yml
を参考に、ファイルを揃えて $ digdag run -a hoge.dig
するとSlackに通知が送信されます。
# slack.dig
_export:
plugin:
repositories:
- https://jitpack.io
dependencies:
- com.github.szyn:digdag-slack:0.1.2
webhook_url: https://hooks.slack.com/services/XXXX/XXXXX/XXXXXXX // <- 先ほど取得したWebhook urlを設定
workflow_name: slack
ENV: develop
+step1-1:
echo>: "Next will be success!"
+step1-2:
slack>: good-template.yml
+step2-1:
echo>: "Next will be failed..."
+step2-2:
sh>: exit 1
_error:
slack>: danger-template.yml
# good-template.yml
username: Digdag
icon_emoji: ':blush:'
# channel: '#general' ## if you need to send message to specific channel
attachments:
- fallback: '[SUCCESS] ${workflow_name} workflow'
color: "good"
text: '*[SUCCESS]* `${workflow_name}` Workflow'
mrkdwn_in:
- text
- pretext
- fields
fields:
- title: Task Name
value: "${task_name}"
short: false
- title: Session Date
value: "${session_date}"
short: true
- title: Environment
value: "${ENV}"
short: true
# danger-template.yml
username: Digdag
icon_emoji: ':blush:'
# channel: '#general' ## if you need to send message to specific channel
attachments:
- fallback: '[SUCCESS] ${workflow_name} workflow'
color: "good"
text: '*[SUCCESS]* `${workflow_name}` Workflow'
mrkdwn_in:
- text
- pretext
- fields
fields:
- title: Task Name
value: "${task_name}"
short: false
- title: Session Date
value: "${session_date}"
short: true
- title: Environment
value: "${ENV}"
short: true
君だけの最強のSlack通知を手に入れろ!