メインコンテンツへスキップ
This feature requires a Pro or Enterprise plan.
このページでは、webhook automation の作成方法について説明します。Slack のオートメーションを作成する場合は、代わりに Create a Slack automation を参照してください。 ハイレベルな手順として、webhook オートメーションを作成するには以下のステップを踏みます:
  1. 必要に応じて、アクセストークン、パスワード、SSH キーなど、オートメーションで必要となる機密文字列ごとに W&B secret を作成 します。Secrets は Team Settings で定義されます。
  2. webhook を作成 して、エンドポイントと認証の詳細を定義し、インテグレーションが必要な secrets へのアクセスを許可します。
  3. オートメーションを作成 して、監視する event と W&B が送信するペイロードを定義します。オートメーションに、ペイロードに必要な secrets へのアクセスを許可します。

webhook を作成する

チーム管理者は、チームに webhook を追加できます。
webhook が Bearer トークンを必要とする場合、またはそのペイロードが機密文字列を必要とする場合は、webhook を作成する前に それを含む secret を作成 してください。1 つの webhook に対して、最大 1 つのアクセストークンと 1 つのその他の secret を設定できます。webhook の認証および認可要件は、webhook のサービスによって決定されます。
  1. W&B にログインし、Team Settings ページに移動します。
  2. Webhooks セクションで、New webhook をクリックします。
  3. webhook の名前を入力します。
  4. webhook のエンドポイント URL を入力します。
  5. webhook が Bearer トークンを必要とする場合は、Access token をそのトークンを含む secret に設定します。webhook オートメーションを使用すると、W&B は Authorization: Bearer HTTP ヘッダーにアクセストークンを設定し、${ACCESS_TOKEN} ペイロード変数 でトークンにアクセスできます。W&B が webhook サービスに送信する POST リクエストの構造の詳細については、webhook のトラブルシューティング を参照してください。
  6. webhook がペイロード内でパスワードやその他の機密文字列を必要とする場合は、Secret をその文字列を含む secret に設定します。その webhook を使用するオートメーションを設定する際、名前の前に $ を付けることで、その secret に ペイロード変数 としてアクセスできます。 webhook のアクセストークンが secret に保存されている場合は、次のステップも完了して secret をアクセストークンとして指定する必要があります。
  7. W&B がエンドポイントに接続し、認証できることを確認します:
    1. オプションで、テスト用のペイロードを提供します。ペイロード内で webhook がアクセス権を持つ secret を参照するには、その名前の前に $ を付けます。このペイロードはテスト目的でのみ使用され、保存されません。オートメーションのペイロードは、オートメーションを作成 する際に設定します。POST リクエスト内で secret とアクセストークンがどこに指定されているかについては、webhook のトラブルシューティング を参照してください。
    2. Test をクリックします。W&B は、設定した資格情報を使用して webhook のエンドポイントへの接続を試みます。ペイロードが提供されている場合、W&B はそれを送信します。
    テストが成功しない場合は、webhook の設定を確認して再試行してください。必要に応じて、webhook のトラブルシューティング を参照してください。
チーム内の2つのwebhookを示すスクリーンショット
これで、その webhook を使用する オートメーションを作成 できるようになりました。

オートメーションを作成する

webhook を設定 した後、Registry または Project を選択し、以下の手順に従って webhook をトリガーするオートメーションを作成します。
Registry の管理者は、そのレジストリ内にオートメーションを作成できます。Registry のオートメーションは、将来追加されるものも含め、レジストリ内のすべてのコレクションに適用されます。
  1. W&B にログインします。
  2. レジストリ名をクリックして詳細を表示します。
  3. レジストリをスコープとしたオートメーションを作成するには、Automations タブをクリックし、Create automation をクリックします。
  4. 監視する event を選択します。 表示される追加フィールドに入力します。例えば、An artifact alias is added を選択した場合は、Alias regex を指定する必要があります。 Next step をクリックします。
  5. webhook を所有するチームを選択します。
  6. Action typeWebhooks に設定し、使用する webhook を選択します。
  7. webhook にアクセストークンを設定した場合、${ACCESS_TOKEN} ペイロード変数 でそのトークンにアクセスできます。webhook に secret を設定した場合、名前の前に $ を付けることでペイロード内でその secret にアクセスできます。webhook の要件は、webhook のサービスによって決定されます。
  8. Next step をクリックします。
  9. オートメーションの名前を入力します。オプションで説明を入力します。Create automation をクリックします。

オートメーションの表示と管理

レジストリの Automations タブから、レジストリのオートメーションを管理します。
  • オートメーションの詳細を表示するには、その名前をクリックします。
  • オートメーションを編集するには、アクションメニュー(...)をクリックし、Edit automation をクリックします。
  • オートメーションを削除するには、アクションメニュー(...)をクリックし、Delete automation をクリックします。確認が必要です。

ペイロードリファレンス

これらのセクションを使用して、webhook のペイロードを作成してください。webhook とそのペイロードのテストに関する詳細は、webhook のトラブルシューティング を参照してください。

ペイロード変数

このセクションでは、webhook のペイロードを作成するために使用できる変数について説明します。
変数詳細
${project_name}アクションをトリガーした変更を所有するプロジェクトの名前。
${entity_name}アクションをトリガーした変更を所有する Entity またはチームの名前。
${event_type}アクションをトリガーしたイベントのタイプ。
${event_author}アクションをトリガーしたユーザー。
${alias}オートメーションが An artifact alias is added イベントによってトリガーされた場合、Artifacts のエイリアスが含まれます。それ以外のオートメーションでは、この変数は空白になります。
${tag}オートメーションが An artifact tag is added イベントによってトリガーされた場合、Artifacts のタグが含まれます。それ以外のオートメーションでは、この変数は空白になります。
${artifact_collection_name}アーティファクトバージョンがリンクされているアーティファクトコレクションの名前。
${artifact_metadata.<KEY>}アクションをトリガーしたアーティファクトバージョンからの任意のトップレベルメタデータキーの値。 <KEY> をトップレベルメタデータキーの名前に置き換えてください。webhook のペイロードでは、トップレベルのメタデータキーのみが使用可能です。
${artifact_version}アクションをトリガーしたアーティファクトバージョンの Wandb.Artifact 表現。
${artifact_version_string}アクションをトリガーしたアーティファクトバージョンの string 表現。
${ACCESS_TOKEN}webhook で設定されている場合、アクセストークンの値。アクセストークンは自動的に Authorization: Bearer HTTP ヘッダーで渡されます。
${SECRET_NAME}設定されている場合、webhook で設定された secret の値。 SECRET_NAME を secret の名前に置き換えてください。

ペイロードの例

このセクションでは、いくつかの一般的なユースケースにおける webhook ペイロードの例を示します。これらの例では、ペイロード変数 の使用方法を実演しています。
アクセストークンに、GitHub Actions ワークフローをトリガーするために必要な権限セットがあることを確認してください。詳細については、GitHub Docs を参照してください
W&B から repository dispatch を送信して GitHub Action をトリガーします。例えば、on キーのトリガーとして repository dispatch を受け入れる GitHub ワークフローファイルがあるとします:
on:
repository_dispatch:
  types: BUILD_AND_DEPLOY
リポジトリのペイロードは以下のようになります:
{
  "event_type": "BUILD_AND_DEPLOY",
  "client_payload": 
  {
    "event_author": "${event_author}",
    "artifact_version": "${artifact_version}",
    "artifact_version_string": "${artifact_version_string}",
    "artifact_collection_name": "${artifact_collection_name}",
    "project_name": "${project_name}",
    "entity_name": "${entity_name}"
    }
}
webhook ペイロードの event_type キーは、GitHub ワークフローの YAML ファイル内の types フィールドと一致する必要があります。
レンダリングされたテンプレート文字列の内容と配置は、オートメーションが設定されているイベントまたはモデルバージョンによって異なります。 ${event_type}LINK_ARTIFACT または ADD_ARTIFACT_ALIAS のいずれかとしてレンダリングされます。マッピングの例を以下に示します:
${event_type} --> "LINK_ARTIFACT" or "ADD_ARTIFACT_ALIAS"
${event_author} --> "<wandb-user>"
${artifact_version} --> "wandb-artifact://_id/QXJ0aWZhY3Q6NTE3ODg5ODg3""
${artifact_version_string} --> "<entity>/model-registry/<registered_model_name>:<alias>"
${artifact_collection_name} --> "<registered_model_name>"
${project_name} --> "model-registry"
${entity_name} --> "<entity>"
テンプレート文字列を使用して、W&B から GitHub Actions やその他のツールに動的にコンテキストを渡します。それらのツールが Python スクリプトを呼び出せる場合、W&B API を通じて Registered Models のアーティファクトを利用できます。

webhook のトラブルシューティング

W&B App UI でインタラクティブに、または Bash スクリプトでプログラム的に、webhook のトラブルシューティングを行います。新しい webhook を作成する際、または既存の webhook を編集する際にトラブルシューティングを行うことができます。 W&B が POST リクエストに使用する形式の詳細については、Bash script タブを参照してください。
チーム管理者は、W&B App UI を使用してインタラクティブに webhook をテストできます。
  1. W&B の Team Settings ページに移動します。
  2. Webhooks セクションまでスクロールします。
  3. webhook 名の横にある横三点リーダー(ミートボールアイコン)をクリックします。
  4. Test を選択します。
  5. 表示される UI パネルから、表示されたフィールドに POST リクエストを貼り付けます。
    webhook ペイロードのテストのデモ
  6. Test webhook をクリックします。W&B App UI 内に、エンドポイントからのレスポンスが投稿されます。
    webhook テストのデモ
デモンストレーションについては、動画 Testing Webhooks in W&B をご覧ください。