ワークフローエンジン『Digdag』でSlack通知する #digdag
はじめに
おばんです、先日地元の仙台に帰ったとき、観光客気分ではじめてずんだシェイクを飲んだら、美味しすぎてハマった田中です。
案件で 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通知を手に入れろ!