Skip to main content
Webhookサポートを積極的に拡大中です。新機能: 指数バックオフを使用した自動再試行 — 失敗した配信は30分以内に最大5回再試行されます。近日公開予定:
  • チーム全体のデフォルトWebhook URL
  • ペイロード検証のための暗号署名
早期アクセスをご希望ですか? info@olostep.com までご連絡いただくか、Slackコミュニティに参加してください。

概要

Webhooksは、長時間実行される操作が完了したときに、リアルタイムのHTTP POST通知をサーバーに送信します。ステータスをポーリングする代わりに、アプリケーションは即座に更新を受け取ります。

使用例

非同期処理

バッチやクロールが完了したときに通知を受け取ることでポーリングを避ける

パイプライントリガー

データが準備できたときに自動的に下流処理をトリガーする

アラート

完了時にSlack、メール、その他のシステムにアラートを送信する

データ同期

Olostepの結果とデータベースを同期させる

サポートされているイベント

バッチの処理が終了したときに発生します(すべてのアイテムが完了または失敗した場合)。
クロールが終了し、発見されたすべてのページが処理されたときに発生します。

Webhooksの設定

リソースを作成する際にwebhookを渡します。このURLが完了通知を受け取ります。
パラメータ名: 標準のパラメータはwebhookです。後方互換性のために、webhook_urlもエイリアスとして受け入れられます。

Webhookペイロード

すべてのWebhookペイロードは統一されたエンベロープ構造に従います:

エンベロープフィールド

idフィールドを使用して、受信側でWebhook配信を重複排除します。同じイベントIDがすべての再試行に表示されます。

再試行の動作

失敗したWebhook配信は、30分間のウィンドウで指数バックオフを使用して自動的に再試行されます: 合計再試行ウィンドウ: 30分
リクエストごとのタイムアウト: 30秒

成功と見なされる条件

エンドポイントは30秒以内に2xxステータスコードを返す必要があります。それ以外の応答は再試行をトリガーします。

ベストプラクティス

200 OKを即座に返し、Webhookを非同期で処理します。処理が30秒以上かかる場合、再試行が行われ、重複配信が発生します。
idフィールドを使用して重複を排除します。処理済みのイベントIDを保存し、重複をスキップします。
デバッグのためにすべてのWebhook受信をログに記録します。イベントID、タイムスタンプ、処理結果を含めます。
Webhookエンドポイントには常にHTTPSを使用してください。HTTPエンドポイントは盗聴や中間者攻撃に対して脆弱です。

トラブルシューティング

  1. リクエストにwebhookパラメータが含まれていることを確認する
  2. エンドポイントが公開アクセス可能であることを確認する(localhostではない)
  3. サーバーログで受信リクエストを確認する
  4. 2xxステータスコードを返していることを確認する
これは再試行中に予想される動作です。idフィールドを使用して冪等性のある処理を実装してください:
エンドポイントは30秒以内に応答する必要があります。Webhookを非同期で処理してください:

近日公開予定

チームデフォルトURL

アカウント設定でデフォルトのWebhook URLを設定します。すべてのリクエストはこのURLを使用しますが、上書きすることも可能です。

署名検証

OlostepからのWebhookペイロードを検証するための暗号署名(HMAC-SHA256)。
これらの機能への早期アクセスをご希望ですか? info@olostep.com までご連絡いただくか、Slackコミュニティに参加してください。