#まとめ
・Slackワークフローが超絶進化していた
・Incomming Webhookの設定をしなくてもワークフロー機能だけで通知が可能に
・変数が任意も設定可能
これはつまり
POST通信で、任意の情報を変数としてSlackに通知出来るWebAPIがワークフローで簡単につくれるようになった
ということになろうかと思います。
手順
ワークフローの設定
ワークフロー作成時に「Webhookワークフロー」というものが増えています。
というかそれ以外にも沢山増えています。すごい。
絵文字リアクションも気になりますが、今回は Webhookを選択。
変数の機能が凄い
Webhookで受け取るパラメータ名を自分自身で決めることができます。
ここで作った変数を、アクション時のメッセージに利用することができます。
変数の「データタイプ」は2020年2月25日現在では
- テキスト
- Slackユーザーのメールアドレス
- SlackユーザーID
の3種です。後ろ2つを指定した場合、この後のメッセージの送信先に選択することもできます。すごい。
今回は開発環境に流れ続けているダメクエリの検知 を作成しようと思うので、
- query_info
- query_time
というパラメータを設定しました。
設定完了画面
↑なんと、ご丁寧にJSON形式のサンプルまで用意してくれます。
ステップの追加:メッセージを送信
用意したパラメータを以下のような感じで差し込むことができます。
Slackのメッセージフォーマットで編集できるのがとても便利です。
ボタンってなんぞ
ワークフローに対してボタンを用意することが出来ます。
これはクリックされると、クリックしたユーザー名が「押しました」と明記され、次のステップのアクションを実行することができ、今回のような用途にもうってつけです。
↓ボタンを押したらスレッドにメッセージを投稿、が便利過ぎますね。
できた
以上で作成完了です。公開ボタンを押します。かんたん!!
この完了画面からコピーできるURLに対して、Content-Type:application/jsonでPOST通信をすれば通知されます。
実際に通知して見る(コマンドライン)
curl -H 'Content-Type:application/json' -d '{ "query_info": "select * from no_index_fulljoina inner join no_index_fulljoinb", "queri_time": "711"}' https://hooks.slack.com/workflows/略
2020年2月25日現在だと、用意したパラメータはすべて必須となるようです。
所感
既に声が出るくらい便利なのですが、今後更に便利になっていく事を予感させます。
通知したいデータと、Slackへ通知するメッセージのフォーマット管理を切り離せるのも便利ですし、それをワークフローで画面から出来るのも便利です。
また、シンプルに変数に対してテキストを送信するだけなのでエラーにもなり辛く、敷居が低いのもポイントかなと思います。社内活用が進みそうです。