はじめに
TiDB Cloudには3rd Partyツールとの連携機能があり、現時点で下記5つのサービスとの連携が可能です。
- Vercel
- DataDog
- Prometheus
- NewRelic
- Zapier
この中でメトリクスを連携するDataDogやNewRelicはよく使われますが、Zapier連携は使ったことがなかったので何ができるのか調べて使ってみました。
Zapier連携でできること
Zapierは様々なツールを連携して一連の自動化ワークフローを作成できるツールです。イベントソースとなるサービスからイベントを受け取り、他のサービスに連携させることで様々な組み合わせを実現できます。
TiDBからのイベント発火(トリガー)と、TiDBへのイベントに応じた実行(アクション)が定義されていて、詳細は下記のドキュメントから確認できます。
アクションの対象はTiDB Cloud Serverlessに限定されているようです
本記事では、たまに聞かれる「TiDB Cloudで誰かがクラスタを作成したら通知してほしい」という機能を実現してみます。TiDB Cloudのトリガーとしてクラスタの作成があるので、クラスタ作成されたらメールが飛ぶようにしてみます。
TiDB Cloud側での設定
APIキーの作成
Zapier連携時に利用するため、APIキーを作成しておきます。Organization Settings>API Keys
で、キーを作成し、表示されたPUBLIC KEYとPRIVATE KEYをメモしておきます。
Zapierインテグレーションの選択
Project Settings
から Zapier連携を選択するだけです。Zapierの画面に遷移するので、アカウントの作成もしくはログインを行います。
Zapierの設定
Zapier側でZap(ワークフロー)の設定画面になるので設定をしていきます。図のようなZapを作成します。
トリガーの設定
- Trigger event は New Clusterを選択します。クラスタ作成するとこのトリガーが発生します
- Accountでは、TiDB CloudのAPIキーを設定します
次のConfigure画面では、トリガーの対象となるTiDB Cloudのプロジェクトを選択します。
Testで、実際にこの設定でクラスタが取得できるか確認することができます。
アクションの設定
アクションは任意ですが、ここではEmailを使ってみました。アクションを追加する際に、Email
で検索するとEmail by Zaiper
が選択できると思います。
Setupでは、Actionとして Send Outbound Email
を選択します。
Configureでは、メールの宛先とメール本文を設定します。メール本文では、/
を入力することでイベントの内容を埋め込むことができます。ここでは、クラスタ名、組織id、リージョンを埋め込みました。
ここまでできたら、Publish
ボタンを押してこのZapを有効化します。
実際に動かしてみる
このZapをためしてみます。指定したプロジェクトでServerlessクラスタを新規で立ち上げて、しばらくするとメールが届きます。メール本文にはクラスタ名が記載されていて正しく動作することがわかります。
今回はメールでしたが、SlackやSMSにも連携することができるので、会社で利用する際などに使えるかもしれません。(クラスタの削除のトリガーとかもほしい気がしますが)
おわりに
他にもデータベースが作成されたときや、データベースに行が挿入されたとき、といったトリガが設定可能です。データベースからイベントを発生させる連携は珍しいので、ぜひ色々ためしてみてください!