0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Remote Lockのwebhookが頻繁に停止する

Posted at

Remote Lockとは

よくジム等でQRコードをスキャンして入退室することがあると思います。
そのサードパーティーの一つです。

webhookとは?

webhook自体の説明は簡略化します。以下が参考になると思います。

Webhooks(ウェブフック)とは、Webアプリケーションやサービスで特定のイベントが発生した際に、HTTPプロトコルを使用してリアルタイムで自動的に通知を行うシステムです。

例えば、GitHubでコードがプッシュされたり、Slackで特定のメッセージが投稿されたりした瞬間に、別のアプリケーションに即座に情報を伝達することができます。Webhooksを活用することで手動での作業を大幅に削減し、業務プロセスの自動化と効率化を実現できます。
Webhooksの特徴は、事前に設定した特定のイベントをトリガーに、自動的に処理を実行できる点です。Slack・LINE・Zoom・Dropbox・Githubなど、多くの主要サービスがWebhooksに対応しており、企業のデジタルワークフローを劇的に改善する可能性を秘めています。

Remote Lockのwebhookの特殊な仕様

送信が成功しない下記の条件でWebhookの通知が停止されるようになりました。

[ 無効なwebhookなdeactivateの処理]

  • webhookの通知が失敗する通知先について、合計5回でのリトライで成功が確認できない場合、当該の通知先を無効化( webhookの送信を停止 )します。

  • webhookの送信は、送信先サーバーから httpsステータスコードが2XX系の応答が3秒以内が返却されることで成功となります。

つまり、webhookでAPIをコールし、それが400, 500系エラーとなった場合webhookが停止してしまう場合があります。

Remote Lockのwebhookのバグ?

webhook起因でエラーが発生し、webhookが停止する事象が頻発していました。
原因は、1 ~ 2週間前の過去のイベントデータが飛んでくるということでした。

そのため、この謎事象に対するハンドリングをすべきでした。
正確にいうと、APIの内部でそのような不適切なイベントは400エラーを返しているのですがそれだとRemote Lockの仕様でwebhookが停止してしまいます。

そのため、「webhookが止まっても構わない」というハンドリング以外は200エラーで返し、エラーログだけ出すようにしておくのがよいでしょう。
また、エラーログはSlackに通知されるような設定をしておけば検知自体はしやすいと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?