2026 年の OpenClaw Webhook と CI コールバックの実践: 認証、冪等キー、ゲートウェイの 3 段階ログのトラブルシューティング

エッジイングレス · 冪等性 · CI ペイロード · 3 層ゲートウェイログ · 非 IM トリガーガイドとのペア

OpenClaw Webhooks and CI Callbacks

小さなチームが運営していますOpenClaw ゲートウェイ24時間年中無休VPS / ドッカー仕事を進めることが多いインバウンドWebhookまたはCI 完了コールバック。 2 つの障害モードが支配的です。重複配送は副作用を増幅させる、 そしてログでは、障害がエッジ、ゲートウェイ、またはダウンストリーム ツールのいずれにあるのかが曖昧になります。。このガイドでは、認証およびタイミングウィンドウのマトリックス6 ステップのロールアウト ランブック、コピー&ペーストカールプローブ、そして3 段階のゲートウェイ ロギング分割トリアージ用に。トリガーソースアーキテクチャの場合は、次と組み合わせます。非 IM トリガーの自動化;チャネルとモデルの優先順位については、を参照してください。ランタイムのトラブルシューティング; TLS とリバースプロキシのデフォルトを調整する実稼働ドメインのリバース プロキシ チェックリスト

01

VPS 上の Webhook と CI コールバックが IM チャネルよりもランダムに感じられる理由

IM チャネルはプラットフォームの再試行と目に見えるコンテキストを送信するため、メッセージの重複は簡単に推測できます。通常、Webhook と CI コールバックは、無人の窓;重複や順序どおりに到着しない場合は、モデルが不安定であるように見えます。 CI の再実行、キューのマージ、または手動ジョブの再試行では、1 つの論理ビルドに対して複数の端末通知が発行されることがよくあります。ゲートウェイが無視した場合pipeline_run_idstage、 そしてconclusion冪等キーでは、一晩で二重支出、重複チケット、または重複したダウンストリーム マージが発生します。

クロックとタイムアウトのスタックは微妙です。コンテナのドリフトとホストの NTP によって、署名されたタイムスタンプ ウィンドウが壊れる可能性があります。エッジproxy_read_timeoutゲートウェイ 502 のような CI 再試行バックオフ サーフェスよりも短く、エッジが実際に接続を切断します。ログを分割せずにエッジ / ゲートウェイ / ツール、間違ったレイヤーを調整します。

  1. 01

    重複した盲点:冪等性ヒットのない HTTP 200 のみをログに記録すると、財務や顧客から苦情が出るまで二重の副作用が隠蔽されます。

  2. 02

    エッジとゲートウェイのギャップ:アクセス ログにはリクエスト ID がないため、ゲートウェイ トレースに参加できず、トリアージは推測に頼ることになります。

  3. 03

    ペイロード ドリフト:CI テンプレートは JSON フィールドの名前を変更しますが、ゲートウェイは依然として古いキーに基づいてルーティングしており、不安定な分岐のように見えます。

  4. 04

    IP ホワイトリストと動的出力:ホストされたランナー IP は、OpenClaw 認証バグとして誤って読み取られる 403 にローテーションします。

  5. 05

    メンテナンスのずれ:発表されたダウンタイムと夜間の CI バッチにより、ゲートウェイのキューがいっぱいになる再試行の嵐が発生します。

02

認証スキームの比較: VPS のエッジでの共有キー、HMAC、ベアラー、および mTLS の実装方法

脅威モデルに基づいて認証を選択します: 共有シークレットと内部 CI の IP ホワイトリスト。露出が増加する場合は、HMAC または mTLS - アプリ コード全体に分散せず、エッジまたはサイドカーで検証します。

オプション運用コストTypical threatこんな方に最適
共有キー + ヘッダー低い鍵漏洩後の偽造コストが低いイントラネット CI、単一チーム、迅速なキーローテーション
HMAC (ペイロード ダイジェスト)中くらい実装エラーは誤った拒否やバイパスにつながる可能性があります耐タンパー性とシンプルなリプレイウィンドウを必要とする Webhook
無記名トークン (短期)中くらいトークン漏洩ウィンドウはTTLと流通チェーンに依存しますすでに OIDC/発行サービスを導入しているチーム
mTLS高い証明書のローテーションと失効のチェーンは複雑ですマルチテナント、強力なコンプライアンス、長期固定統合ソリューション
03

6 ステップのランブック: 公開されたエントリからレビュー可能な冪等監査まで

TLS 終端とリバース プロキシ配線は運用チェックリストに従っており、ゲートウェイはローカルにバインドされていると想定します。 Webhook をオンにする前に混合コンテンツや WebSocket のドロップを修正するか、ログにノイズが多いままになります。

  1. 01

    URL とパスを凍結する: Webhook と CI コールバックに別のパス プレフィックスを使用し、同じ場所とコントロール UI の静的リソースを混在させることを禁止します。

  2. 02

    リクエスト ID の挿入: X-Request-Id のエッジ生成または透過的な送信、ゲートウェイ ログは、3 セグメントの相関関係を容易にするために同じフィールドを出力する必要があります。

  3. 03

    冪等キーを定義します。delivery_id または CI の check_suite_id + job_id +結論を組み合わせ、重複排除ストレージに書き込み、TTL を設定します。

  4. 04

    アライメント時間ウィンドウ: 署名またはタイムスタンプ検証ウィンドウは、最大 CI 再試行間隔および予約 NTP ドリフト マージンより大きくする必要があります。

  5. 05

    フォールト挿入セルフテスト: 重複したペイロードと順序が崩れた結論を意図的に送信して、副作用の数が常に 1 であるかどうかを検証します。

  6. 06

    アーカイブ監査フィールド: 呼び出し元 IP、キーのバージョン番号、冪等のキー ヒット結果を記録します。保存期間は 200 件のみを保存するのではなく、内部コンプライアンスを満たしています。

バッシュ
curl -sS -X POST "https://YOUR_DOMAIN/openclaw/hooks/ci" \
  -H "Content-Type: application/json" \
  -H "X-Webhook-Signature: sha256=REPLACE" \
  -H "X-Idempotency-Key: pipeline-12345-success" \
  -H "X-Request-Id: probe-$(date +%s)" \
  --data '{"event":"workflow_job","conclusion":"success","repository":"acme/app"}'

ヒント: プローブはテスト ウェアハウスでのみトリガーしてください。運用環境では、IM チャネル キーとの混合を避けるために、キーに独立した回転ウィンドウを設定する必要があります。

04

ゲートウェイの 3 段階ログ: エッジ ステータス コードからツール呼び出しの証拠チェーンまで

階層 1 — エッジ:ゲートウェイに接続する前に、アップストリームのステータス、バイト数、および request_time のリバース プロキシ アクセス ログを読み取ります。ここでの 499/502 は、モデル ルーティングではなく、タイムアウトまたは TLS/SNI の問題を意味します。

階層 2 — ゲートウェイ:認証失敗、べき等ヒット、キューの深さ、および JSON 解析エラーを追跡します。と比較するランタイムのトラブルシューティングリクエストがハンドラーに到達しなかったかどうかを確認します。

階層 3 — ツール/モデル:CI が HTTP 200 を認識した場合や、空の応答エラーを見逃した場合でも、ツール呼び出し ID とアウトバウンド HTTP ステータスを組み合わせます。

注: 完全なキーまたは署名の原材料を情報レベルのログに入力しないでください。監査では、代わりにキーのバージョン番号と切り捨てられたフィンガープリントを使用できます。

  1. A

    ワンクリック関連付け: カスタマー サービス チケットについては、まず X-Request-Id を尋ね、3 つのログをそれぞれ 1 回検索して、結論を書き込みます。

  2. B

    階層化アラーム: Edge 5xx と Gateway 4xx は同じ沈黙ルールを共有してはなりません。そうしないと、再試行ストームについて誰も知ることができなくなります。

  3. C

    テンプレートの確認: 「障害レベル、最初の例外フィールド、冪等キー、呼び出し元 IP バージョン」の 4 つの列を再利用できるように記録します。

05

見積可能性のしきい値と実装リズム: 紛争を作業指示フィールドに集約する

内部レビューのデフォルト - 外部に何かを約束する前に、CI コールバック SLA に置き換えます。

  • 冪等性ウィンドウ:プロバイダーによって文書化されている最大 CI 再試行間隔の少なくとも 1.5​​ 倍にしてください。そうしないと、結論フィールドのジッターによって正当な再試行が拒否されます。
  • エッジ読み取りタイムアウト:約 256 KB を超える p95 ボディを持つ海洋間コールバックの場合、リバース プロキシ読み取りタイムアウトが 60 秒未満であると、接続が早期に切断されることがよくあります。推測ではなくヒストグラムを使用してください。
  • ログの保持:セキュリティ相関のために、フルメタデータ Webhook アクセス証跡を最低 7 ~ 14 日間保持します。全身サンプリングは別のポリシーです。
チームの成熟段階Webhook エントリー戦略最優先の改善
0→1検証共有キー + 手動カール冪等なキーとリクエスト ID を補完し、手動キー配布の作成を禁止します。
1→10コラボHMAC + IP/CIDR 許可リストCI と外部サプライヤー間で 2 セットのキーと監査バケットを分割する
10→100スケール有効期間の短いトークンまたは mTLS + レート制限ゲートウェイの監視を統合アラームとオンコール レイヤ化に統合

一時的な VPS エグレスと手動キーにより、移行中に Webhook フレークが増幅されます。 1 つの運用ストーリーで OpenClaw、CI コールバック、実稼働グレードの Mac キャパシティを必要とするチームは、通常、次のようなメリットを得ることができます。VpsMesh クラウド Mac Mini レンタル: 予測可能なリージョンとネットワーキングのため、Webhook トリアージとビルド トリアージは同じ語彙を共有します。

よくある質問

よくある質問

最初のチェックリバースプロキシアクセスログアップストリームのステータスと遅延を確認し、同じ内容でゲートウェイ ログを検索します。X-Request-Id、次にツール呼び出しを詳しく調べます。安定した出力ノードを注文する場合は、注文ページ

を終了します設置と医師のチェックリストWebhook を有効にする前に。それ以外の場合、同じ署名エラーが 3 つのログ層すべてに表示されます。

リモート アクセス ガイダンスは、ヘルプセンター;でプランを比較する価格ページ