概要
- デプロイ関連の通知をSlackにしたかったけど、Netlify上の設定ではProプランでしかSlack連携できなかった
- webhookは使用できたが自分で実装するのは面倒
- Zapierを使用したら簡単に連携できた
- Netlifyのドキュメントから用意されているZapへのリンクがあり、これを使用するとbotのアイコン画像とか、メッセージ内容がいい感じに設定されてる。
https://docs.netlify.com/site-deploys/notifications/#zapier-integrations - 以下の手順はトライアル期間か、スタンダードプラン以上の場合に実行できる。(2023/1/22追記)
前提
- Zapierのアカウント作成済み
- Netlifyでデプロイ履歴がある
- Slackに通知用のチャンネルがある
Zapier
各種サービスのAPI連携が提供されてて、ブラウザ上の操作で簡単に連携ができる。
有料プランじゃないと使用できないものもあるが、5,000以上のサービスに対応しているらしい。
最初の設定でよく使うサービスを登録しておいたら、それらを使用するフロー(Zapと呼ばれている)のテンプレートをお勧めしてくれる。
今回初めて利用するので、自分で一つずつ設定してみた。
(が後から上記のNetlifyリンクから作成し直した。)
デプロイ失敗のZapでは画像等の設定がされてたが、成功時のZapには設定されてなかったので、失敗時の時の設定を見て自分で入れる必要があった。
Zap作成
基本的に表示されているフォームを選択してくことで特に詰まることなく作成できた。
- ダッシュボードで
Create Zap
を選択 Trigger
を選択する
処理の始まりとなるサービスを指定する。
プレミアムならwebhookツールがあるので、未対応のサービスを起点にしてZapirのフローを起動することも出来そう。
今回はNetlifyを選択。- 起点となる
Event
を選択
デプロイ成功時、デプロイ失敗時等表示される。 - 認証
初回の作成時には対象サービスをZapierで利用できるように自身のアカウントで認証する必要がある。
次回以降は認証したアカウントが表示されるので選択する。 - 対象サイトを選択
デプロイを監視するサイトを指定。 - トリガーのテスト
データ取得ができるかのテストがある。
問題なければ直近のデプロイのデータを取得し、内容が表示される。 Action
を選択
イベントが発生した時にすることを設定する。
今回は直接Slackの処理を設定するが、実行タイミングを変えたり、条件指定でアクションを実行するか等の設定もできる。
本番のみデプロイ完了を通知する場合はここでコンテキストを指定すれば対応できる。- 何をするかを設定する
できることの一覧が表示されるので選択。今回はチャンネルにメッセージを投稿する。
Slackでも認証をして、アカウントを選択する。
メッセージ文面は自分で直接書く以外に、Netlifyから送られてきた内容も指定できる。
actionの設定は必須項目以外も細かく指定できるようになってた。(一部抜粋)- botとして通知するか、自分として通知するか
- botの名前
- botのアイコン
- url記載時に拡張表示するか
- スレッドにするか
- アクションのテスト
内容を設定したらトリガー同様のテストがあり、実際に指定チャンネルに通知された。 - 完了
全ての設定ができたらZap完成。
NetlifyのDeploy notifications
を見ると、作成したZapのwebhookが追加されていた。
Slack通知
メッセージの内容自体はZap作成時のものが反映されている。
それに加えて、Zapのエディターへのリンクが追加されている。
内容のカスタマイズをしたい時等はここから直接アクセスできる。
アクセス直後はread-only
になっていて、トリガーやアクションをクリックし内容確認、Edit
で編集できるようになる。
その他
フリープランだとZapは5件までなので、やりたいことが多いならIFTTT等の別サービスも併用するかアップグレードすることになりそう。
あとは1ヶ月の実行回数上限もある。
プラン表ではフリープランの場合は100回になってるけど、ダッシュボード上の表示では1,000回までいけそうな見た目になってる。
スタータープランが月750回なので100と思った方が良さそう?
アップグレードしたら上限が増える以外に、複数のトリガーを設定できたり、データのチェック間隔が短くなったりするらしい。
2023/1/22 追記
登録開始からしばらくはトライアル期間で、無料プランよりできることが多いようだった。
期間経過後はダッシュボード上の表記も月100件の実行で、条件指定(step)のあるzapは使用できなくなっていた。