第19章 Webhook の使用


Webhook は、Web ページまたは Web アプリケーションが他のアプリケーションにリアルタイムで情報を提供するための方法です。Webhook は、イベントが発生した後にのみトリガーされます。リクエストには通常、イベントの詳細が含まれています。イベントは、ホストがプロビジョニングされたことを確認する電子メールの送信などの呼出しをトリガーします。Webhook を使用すると、fire-and-forget メッセージ交換パターンを使用して、Satellite の内部イベントに基づいて外部 API への呼び出しを定義できます。リクエストを送信するアプリケーションは、レスポンスを待たないか、無視します。

Webhook のペイロードは、Webhook テンプレートから作成されます。Webhook テンプレートは、プロビジョニングテンプレートと同じ ERB 構文を使用します。使用可能な変数:

  • @event_name: イベントの名前。
  • @webhook_id: 一意のイベント ID。
  • @payload: ペイロードデータ。イベントタイプごとに異なります。個々のフィールドにアクセスするには、@payload[:key_name] Ruby ハッシュ構文を使用します。
  • @payload[:object]: データベースアクション (作成、更新、削除) によってトリガーされるイベントのデータベースオブジェクト。カスタムイベントには使用できません。
  • @payload[:context]: リクエストやセッションの UUID、リモート IP アドレス、ユーザー、組織、ロケーションなどのハッシュなどの追加情報。

Webhook は HTTP を使用するため、既存の Web サービスに新しいインフラストラクチャーを追加する必要はありません。

Satellite での Webhook の一般的な使用例は、ホストが作成または削除されたときにモニタリングシステムを呼び出すことです。

Webhook は、外部システムで実行するアクションを API を介して実行できる場合に役立ちます。追加のコマンドを実行したりファイルを編集したりする必要がある場合は、Capsules 用の shellhooks プラグインを利用できます。shellhooks プラグインを使用すると、API を介して実行できる Capsule 上のシェルスクリプトを定義できます。

shellhooks プラグインをインストールしなくても、webhook を正常に使用できます。

利用可能なイベントのリストは、利用可能な Webhook イベント を参照してください。

19.1. Webhook テンプレートの作成

Webhook テンプレートは、Webhook のトリガー時に、設定されたターゲットに対して HTTP リクエストの本文を生成するために使用されます。次の手順を使用して、Satellite web UI で Webhook テンプレートを作成します。

手順

  1. Satellite Web UI で、Administer > Webhook > Webhook Templates に移動します。
  2. Clone an existing template または Create Template をクリックします。
  3. テンプレートの名前を入力します。
  4. エディターを使用して、テンプレートペイロードに変更を加えます。

    Webhook HTTP ペイロードは、Satellite テンプレート構文を使用して作成する必要があります。Webhook テンプレートは、イベントのメインオブジェクトを表すことができる @object と呼ばれる特別な変数を使用できます。特定のイベントの場合、@object が欠落する可能性があります。@payload 変数を使用して、実際にどのデータが利用可能であるかを判断できます。

    詳細は、ホストの管理テンプレート作成リファレンス を参照してください。使用可能なテンプレートマクロとメソッドは、Satellite Server の /templates_doc を参照してください。

  5. オプション: 説明と監査コメントを入力します。
  6. 組織とロケーションを割り当てます。
  7. Submit をクリックします。

Webhook テンプレートを作成するときは、テンプレートの対象となるターゲットアプリケーションの形式に従う必要があります。たとえば、アプリケーションでは、Webhook メッセージを含む "text" フィールドが想定できます。Webhook テンプレートの形式の詳細は、対象アプリケーションのドキュメントを参照してください。

リモート実行ジョブの実行

この Webhook テンプレートは、リモート実行ジョブの ID と結果を含むメッセージを定義します。このテンプレートを使用する Webhook は、Actions Remote Execution Run Host Job Succeeded または Actions Remote Execution Run Host Job Failed などのイベントにサブスクライブできます。

{
    "text": "job invocation <%= @object.job_invocation_id %> finished with result <%= @object.task.result %>"
}
Copy to Clipboard Toggle word wrap
ユーザーの作成

この Webhook テンプレートは、作成されたユーザーのログインとメールを含むメッセージを定義します。このテンプレートを使用する Webhook は、User Created イベントにサブスクライブする必要があります。

{
    "text": "user with login <%= @object.login %> and email <%= @object.mail %> created"
}
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat