Webhook の仕組み
Webhook の作成
コンソールから
- 設定 > Webhooks に移動する
- Webhook を作成 をクリックする
- Webhook を設定する:
- 名前:識別しやすい名称
- URL:エンドポイント URL(HTTPS 必須)
- イベント:購読するイベントを選択
- シークレット:検証用の署名シークレット(任意)
- 保存してテストする
Webhook の設定項目
| フィールド | 説明 | 必須 |
|---|---|---|
| 名前 | 識別用のわかりやすい名前 | はい |
| URL | イベントを受信する HTTPS エンドポイント | はい |
| イベント | 購読するイベントタイプ | はい |
| シークレット | ペイロード署名用の共有シークレット | 推奨 |
| ヘッダー | 追加するカスタムヘッダー | いいえ |
| 有効 | Webhook の有効・無効の切り替え | はい |
イベントタイプ
CloudThinker 全体のイベントを購読できます。推奨事項イベント
| イベント | トリガー |
|---|---|
recommendation.created | 新しい推奨事項が生成された |
recommendation.updated | 推奨事項のステータスが変更された |
recommendation.implemented | 推奨事項が完了としてマークされた |
recommendation.comment | 推奨事項にコメントが追加された |
インシデントイベント
| イベント | トリガー |
|---|---|
incident.created | 新しいインシデントが作成された |
incident.updated | インシデントの詳細が変更された |
incident.resolved | インシデントが解決済みとしてマークされた |
incident.comment | インシデントにコメントが追加された |
セキュリティイベント
| イベント | トリガー |
|---|---|
finding.created | 新しいセキュリティ検出事項が発見された |
finding.resolved | セキュリティ検出事項が解決された |
compliance.changed | コンプライアンスステータスが変更された |
タスクイベント
| イベント | トリガー |
|---|---|
task.started | スケジュールされたタスクの実行が開始された |
task.completed | タスクが正常に完了した |
task.failed | タスクでエラーが発生した |
エージェントイベント
| イベント | トリガー |
|---|---|
conversation.completed | エージェントとの会話が終了した |
approval.requested | エージェントがアクションの承認を要求した |
approval.granted | ユーザーがエージェントのアクションを承認した |
リソースイベント
| イベント | トリガー |
|---|---|
resource.discovered | 新しいクラウドリソースが検出された |
resource.changed | リソースの設定が変更された |
resource.deleted | リソースが存在しなくなった |
Webhook ペイロード
各 Webhook には標準化されたペイロードが含まれます。ペイロードフィールド
| フィールド | 説明 |
|---|---|
id | 一意のイベント識別子 |
type | イベントタイプ(例:recommendation.created) |
timestamp | ISO 8601 タイムスタンプ |
workspace_id | イベントが発生したワークスペース |
data | イベント固有のペイロード |
セキュリティ
署名検証
Webhook シークレットを設定すると、CloudThinker が各ペイロードに署名します。IP 許可リスト
CloudThinker の Webhook は既知の IP アドレス範囲から発信されます。ファイアウォールルールを設定するための最新の IP リストについては、サポートにお問い合わせください。HTTPS のみ
Webhook URL は HTTPS を使用する必要があります。本番環境では自己署名証明書はサポートされていません。再試行ロジック
CloudThinker は失敗した Webhook 配信を再試行します。再試行スケジュール
| 試行回数 | 遅延 |
|---|---|
| 1 | 即時 |
| 2 | 1分後 |
| 3 | 5分後 |
| 4 | 30分後 |
| 5 | 2時間後 |
| 6 | 8時間後 |
成功条件
次の場合に配信が成功とみなされます:- HTTP 2xx ステータスコード
- 30秒以内のレスポンス
失敗時の処理
すべての再試行が失敗した場合:- イベントは失敗としてマークされる
- 通知が送信される(設定されている場合)
- Webhook ログでイベントを確認できる
Webhook の管理
Webhook のテスト
本番稼働前に Webhook 配信をテストします:- 設定で Webhook を選択する
- テストイベントを送信 をクリックする
- イベントタイプを選択する
- 配信ステータスとペイロードを確認する
ログの確認
Webhook のアクティビティを監視します:- 設定 > Webhooks > ログ に移動する
- 配信の試行を確認する
- リクエスト/レスポンスの詳細を確認する
- ステータス、イベントタイプ、日付でフィルタリングする
Webhook の一時停止
Webhook を一時的に無効にします:- Webhook を選択する
- 有効 をオフに切り替える
- 一時停止中のイベントはキューに蓄積されません
Webhook テンプレート
一般的な連携用のテンプレートを使用します。Slack
Slack チャンネルにイベントを投稿する:Jira
CloudThinker イベントから Jira チケットを作成する:PagerDuty
PagerDuty インシデントをトリガーする:ベストプラクティス
必ず署名を検証する
必ず署名を検証する
Webhook シークレットを使用し、リクエストが CloudThinker から発信されたことを確認するために署名を検証してください。
素早くレスポンスを返す
素早くレスポンスを返す
すぐに 2xx レスポンスを返してから、イベントを非同期で処理してください。処理に時間がかかるとタイムアウトが発生します。
重複を処理する
重複を処理する
Webhook の配信が重複することがあります。イベントの
id を使って受信側で重複排除してください。失敗を監視する
失敗を監視する
Webhook の失敗に対するアラートを設定してください。イベントの欠落を防ぐため、問題を迅速に調査して修正してください。
必要なイベントのみ購読する
必要なイベントのみ購読する
必要なイベントのみ購読してください。ノイズと処理オーバーヘッドを削減できます。
連携例
GitHub Actions
CloudThinker イベントからワークフローをトリガーする:AWS Lambda
サーバーレス関数で Webhook を処理する:関連
インシデント Webhook
PagerDuty、Datadog、Prometheus などからの受信 Webhook で RCA を自動トリガーする
タスクとスケジューリング
定期操作のスケジュール設定とイベント駆動ワークフローの作成
通知
推奨事項、インシデント、セキュリティ検出事項のアラートルーティングを設定する
自律エージェント
手動レビューなしに Webhook イベントに基づいてエージェントが自動的に行動する