Zapierのインスタントトリガを使ってクラウドサービスの異常時にほぼリアルタイムにChatWorkへ通知する仕組みを作ってみた

zapier_logo

どうも!西村祐二@大阪です。

IaaSやPaaS、SaaSなどのクラウドサービスを利用していると
そのサービスの稼働状況を確認したいときがあります。
大手のクラウドサービスではWEBサイトにて稼働状況を掲載しているところがあります。

例えば、認証基盤サービスを提供しているAuth0では下記サイトのように
サービスの稼働状況を掲載しております。

2017-06-14 17.09.06

また、右の「SUBSCRIBE TO UPDATES」からサービスの稼働状況に変化があれば、「メール」「SMS」「RSS」などで通知してくれるサービスがあります。

2017-06-14 17.14.55

今回、上記の連絡してくれるサービスとWebサービスを簡単に連携させることができるZapierを使って、
クラウドサービスに異常があればChatWorkに通知するようにしてみます。

また、インスタントトリガーというトリガーに対応してる
Email Parser by Zapier」をトリガに用いたいと思います。
これを使えば、無料アカウントでも
「サービス障害 → メール → Zapier → ChatWorkに通知」という流れを
ほぼリアルタイムに実行することができるようになります。

インスタントトリガとは

インスタントトリガとは
アカウントのプランにかかわらずイベント発生時に即座に実行されるトリガです。
つまり、インスタントトリガを使えば無料アカウントでもほぼリアルタイムにWEBサービスを連携することができます。

今回作成する仕組みで通常のトリガとインスタントトリガを比較したときのイメージは下記のようになります。

2017-06-14 23.51.30

通常のトリガとインスタントトリガの見分け方

下記画像のようにZAP作成後に「INSTANT」の表示があるとインスタントトリガとして設定されており、
ほぼリアルタイムにWEBサービスの連携ができるようです。

2017-06-14 18.19.17

インスタントトリガに対応していないときは「INSTANT」の表示がありません。
GmailをトリガにZAPを作成した際は「INSTANT」の表示はありませんでした。

2017-06-15 0.34.48

また、ZAPをオンオフする画面も表示が異なります。

インスタントトリガに対応している場合は下記の画像のように表示されます。

2017-06-15_0_57_26

通常のトリガの場合は下記の画像のように表示されます。

2017-06-15_1_16_16

現状、ZAPを作成してみるまではインスタントトリガであるかどうかわからないようです。
作成前に判別する方法がありましたら教えて下さい!

作成手順

では、さっそく作っていきましょう。

事前準備

ZapierからChatWorkにメッセージを投稿するためにはAPIキーが必要となります。
こちらのページを参照しAPIキーの取得を行っておいてください。

ZAPのトリガを設定

▼ログインした画面の「MAKE A ZAP!」をクリックします。

2017-06-15_1_29_18

▼トリガに「Email Parser by Zapier」を選択します。

2017-06-15 1.32.37

▼トリガを発動するイベントとして「New Email」を選択し、「Save + Continue」をクリックします。

2017-06-15 1.33.07

▼Email Parser用のメールアドレスを取得します。
「Connect a New Account」をクリックします。 2017-06-15 1.33.23

▼新しいウィンドウが立ち上がります。右上の「Signup」をクリックします。 2017-06-15_1_37_58

▼メールアドレス、パスワードを設定し、サインアップすると下記画面に移動します。
「Create Mailbox」をクリックします。 2017-06-15 2.09.17

▼ランダムなメールアドレスを払い出してくれます。
10秒おきにリフレッシュされるので、気に入ったアドレスになったら「Skip Waiting」をクリックします。 2017-06-15_2_10_02

▼有料アカウントの場合、ランダムなアドレス以外に変更することができるようです。
また、テンプレートなども設定することができますが、今回は特に必要ないのでそのまま保存します。 2017-06-15_2_10_49

▼メールアドレスの作成が完了しましたら、一度そのアドレスに対してテストメールを送っておきましょう。
正常に受信ができてる場合、下記画像のように「Last Email」のところが変化します。

2017-06-15_2_34_23

▼テストメールが問題なければZAP作成の画面に戻り、再度「Connect a New Account」をクリックし、
「Authorize」ボタンをおしてアカウントの紐付けを行います。紐付けが完了すると下記画像のようになります。「Save + Continue」をクリックし次に行きます。

2017-06-15_2_13_05    ▼Mailboxは先程作成したアドレスを選択します。    2017-06-15_2_13_24

▼あとは、順に右下の「Continue」をおしていけばトリガの設定完了です。

ZAPのアクション設定

▼ChatWorkを選択します。

2017-06-15 2.28.45

▼「Send Message」にチェックします。

2017-06-15 2.29.19

▼「Connect a New Account」をクリックします。

2017-06-15 2.29.30

▼別ウィンドウが立ち上がり、事前に取得しておいたAPIキーを入力します。

2017-06-15 2.29.43

▼ルームと投稿したいメッセージのテンプレートを設定します。
画像の赤枠より、トリガから取得できる情報(件名や内容)を確認、設定することができます。
※事前にテストメールを送っておかないと表示されないようです。
今回は
[info][title]件名[/title]本文[/info]
となるように設定しました。

2017-06-15_2_39_14

▼あとは右下の「Continue」などのボタンを順にクリックしていけば完了です。
作成が完了したらZAPを有効化しておきましょう。

2017-06-15 2.41.04

動作確認

トリガに設定したアドレスに対して、メールをおくりChatWorkへ通知されるか確認します。

下記画像のように問題なくChatWorkへ通知がされました。
タイムラグ的にはメールを送信してからおよそ1分かかるかどうかぐらいでChatWorkへ通知されました。 2017-06-15 11.26.54

クラウドサービスの稼働状況の通知設定にアドレスを登録

トリガに設定したアドレスを登録しておくことにより、ChatWorkへ通知が行われます。

2017-06-14_17_14_55

例として、Auth0のサイトにアドレスを登録しておくと下記のような通知がきました。

2017-06-15_10_48_51

さいごに

いかがだったでしょうか。

インスタントトリガを使うことによりタイムラグをなるべく少なくした
サービス連携が可能になるかと思います。
※無料アカウントの場合、タスク実行回数が月100回までなのでご注意ください。

インスタントトリガは意外と知られていない機能かなと思ったためブログにしてみました。
だれかの参考になれば幸いです。

また、今回メールをトリガとしましたが
クラウドサービスの稼働状況の通知にメールが対応していない場合があります。
そんなときは、ChatWorkではなく純粋にSlackを使うほうがスマートだと思います。
理由として、SlackはZapierを使うまでもなく標準のintegrationsに
メールやツイッター、RSSと連携して通知する機能があるためです。
Slackで情報収集や通知のためのチャンネルを作っておき、
そこに通知するのが個人的にはやりやすいなと思いました。