Webhook オートメーションを作成する
3 minute read
This feature requires a Pro or Enterprise plan.
このページでは、webhook のオートメーションを作成する方法を示します。Slack オートメーションを作成するには、代わりに Slack オートメーションの作成を参照してください。
webhook オートメーションを作成するための大まかな手順は以下の通りです。
- 必要に応じて、オートメーションに必要なアクストークン、パスワード、またはSSHキーなどを含む機密文字列ごとにW&B シークレットを作成します。シークレットはチーム設定で定義されます。
- webhook を作成し、エンドポイントと承認の詳細を定義し、必要なシークレットにアクセスするためのインテグレーションのアクセス権を付与します。
- オートメーションを作成し、監視するeventと W&B が送信するペイロードを定義します。ペイロードのために必要なシークレットに対して、オートメーションにアクセスを許可します。
webhook の作成
チーム管理者は、チームに webhook を追加できます。
- 
W&B にログインし、チーム設定ページに移動します。 
- 
Webhooks セクションで、New webhook をクリックします。 
- 
webhook に名前を提供します。 
- 
webhook のエンドポイント URL を提供します。 
- 
webhook が Bearer トークンを必要とする場合、Access token をそれを含む secretに設定します。webhook オートメーションを使用する際、W&B は Authorization: BearerHTTP ヘッダーをアクストークンに設定し、${ACCESS_TOKEN}payload variable でトークンにアクセスできます。
- 
webhook のペイロードにパスワードまたは他の機密文字列が必要な場合、Secret をその文字列を含むシークレットに設定します。webhook を使用するオートメーションを設定するとき、シークレットの名前に $を付けて payload variable としてシークレットにアクセスできます。webhook のアクセストークンがシークレットに保存されている場合は、アクセストークンとしてシークレットを指定するために次のステップを 必ず 完了してください。 
- 
W&B がエンドポイントに接続し、認証できることを確認するには: - オプションで、テスト用のペイロードを提供します。ペイロード内で webhook がアクセス可能なシークレットを参照するには、その名前に $を付けます。このペイロードはテスト用であり保存されません。オートメーションのペイロードは create the automation で設定します。シークレットとアクセストークンがPOSTリクエストで指定されている場所を表示するには、Troubleshoot your webhook を参照してください。
- Test をクリックします。W&B は、設定された認証情報を使用して webhook のエンドポイントに接続しようとします。ペイロードを提供した場合は、W&B がそれを送信します。
 テストが成功しない場合は、webhook の設定を確認して再試行してください。必要に応じて、Troubleshoot your webhook を参照してください。 
- オプションで、テスト用のペイロードを提供します。ペイロード内で webhook がアクセス可能なシークレットを参照するには、その名前に 
これで webhook を使用する オートメーションを作成することができます。
オートメーションの作成
webhook を設定した後、Registry または Project を選択し、webhook をトリガーするオートメーションを作成するための手順に従います。
レジストリ管理者は、そのレジストリ内でオートメーションを作成できます。レジストリのオートメーションは、将来追加されるものを含めて、そのレジストリ内のすべてのコレクションに適用されます。
- 
W&B にログインします。 
- 
詳細を確認するためにレジストリの名前をクリックします。 
- 
レジストリにスコープされているオートメーションを作成するには、Automations タブをクリックし、Create automation をクリックします。レジストリにスコープされているオートメーションは、そのすべてのコレクション(将来作成されるものを含む)に自動的に適用されます。 レジストリ内の特定のコレクションのみにスコープされたオートメーションを作成するには、コレクションのアクション ...メニューをクリックし、Create automation をクリックします。または、コレクションを表示しながら、コレクションの詳細ページの Automations セクションにある Create automation ボタンを使用してそれに対するオートメーションを作成します。
- 
監視する Event を選択します。イベントによっては表示される追加フィールドを入力します。例えば、An artifact alias is added を選択した場合、Alias regex を指定する必要があります。Next step をクリックします。 
- 
webhookを所有するチームを選択します。 
- 
Action type を Webhooks に設定し、使用する webhook を選択します。 
- 
webhook にアクセストークンを設定している場合、 ${ACCESS_TOKEN}payload variable でトークンにアクセスできます。webhook にシークレットを設定している場合、シークレットの名前に$を付けてペイロード内でアクセスできます。webhook の要件は webhook のサービスによって決まります。
- 
Next step をクリックします。 
- 
オートメーションに名前を付けます。オプションで説明を入力します。Create automation をクリックします。 
W&B 管理者はプロジェクト内でオートメーションを作成できます。
- 
W&B にログインし、プロジェクトページに移動します。 
- 
サイドバーの Automations をクリックします。 
- 
Create automation をクリックします。 
- 
監視する Event を選択します。 - 
表示される、追加フィールドを入力します。例えば、An artifact alias is added を選択した場合、Alias regex を指定する必要があります。 
- 
オプションでコレクションフィルタを指定します。それ以外の場合、オートメーションはプロジェクト内のすべてのコレクションに適用され、将来追加されるものも含まれます。 
 Next step をクリックします。 
- 
- 
webhookを所有するチームを選択します。 
- 
Action type を Webhooks に設定し、使用する webhook を選択します。 
- 
webhook がペイロードを必要とする場合、それを構築し、Payload フィールドに貼り付けます。webhook にアクセストークンを設定している場合、 ${ACCESS_TOKEN}payload variable でトークンにアクセスできます。webhook にシークレットを設定している場合、シークレットの名前に$を付けてペイロード内でアクセスできます。webhook の要件は webhook のサービスによって決まります。
- 
Next step をクリックします。 
- 
オートメーションに名前を付けます。オプションで説明を入力します。Create automation をクリックします。 
オートメーションの表示と管理
- レジストリのオートメーションは、レジストリの Automations タブから管理します。
- コレクションのオートメーションは、コレクションの詳細ページの Automations セクションから管理します。
これらのページのいずれかから、レジストリ管理者は既存のオートメーションを管理できます。
- オートメーションの詳細を表示するには、その名前をクリックします。
- オートメーションを編集するには、そのアクションの ...メニューをクリックし、Edit automation をクリックします。
- オートメーションを削除するには、そのアクションの ...メニューをクリックし、Delete automation をクリックします。確認が必要です。
W&B 管理者はプロジェクトの Automations タブからプロジェクトのオートメーションを表示および管理できます。
- オートメーションの詳細を表示するには、その名前をクリックします。
- オートメーションを編集するには、そのアクションの ...メニューをクリックし、Edit automation をクリックします。
- オートメーションを削除するには、そのアクションの ...メニューをクリックし、Delete automation をクリックします。確認が必要です。
ペイロードのリファレンス
以下のセクションを使用して、webhook のペイロードを構築します。webhook とそのペイロードのテストについての詳細は、Troubleshoot your webhook を参照してください。
ペイロード変数
このセクションでは、webhook のペイロードを構築するために使用できる変数について説明します。
| Variable | Details | 
|---|---|
| ${project_name} | アクションをトリガーした変更を所有するプロジェクトの名前。 | 
| ${entity_name} | アクションをトリガーした変更を所有する entity またはチームの名前。 | 
| ${event_type} | アクションをトリガーしたイベントのタイプ。 | 
| ${event_author} | アクションをトリガーしたユーザー。 | 
| ${artifact_collection_name} | アーティファクトバージョンがリンクされているアーティファクトコレクションの名前。 | 
| ${artifact_metadata.<KEY>} | アクションをトリガーしたアーティファクトバージョンのトップレベルのメタデータキーの任意の値。 <KEY>をトップレベルのメタデータキーの名前に置き換えます。webhook のペイロードにはトップレベルのメタデータキーのみが利用可能です。 | 
| ${artifact_version} | アクションをトリガーしたアーティファクトバージョンの Wandb.Artifact表現。 | 
| ${artifact_version_string} | アクションをトリガーしたアーティファクトバージョンの string表現。 | 
| ${ACCESS_TOKEN} | アクストークンが設定されている場合、webhookで設定されたアクセストークンの値。アクセストークンは自動的に Authorization: BearerHTTP ヘッダーに渡されます。 | 
| ${SECRET_NAME} | 設定されている場合、webhookに設定されたシークレットの値。 SECRET_NAMEをシークレットの名前に置き換えます。 | 
ペイロードの例
このセクションでは、一般的なユースケースのための webhook ペイロードの例を示します。例は payload variables をどのように使用するかを示します。
W&B からリポジトリディスパッチを送信して GitHub アクションをトリガーします。例えば、リポジトリディスパッチを on キーのトリガーとして受け入れる 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}"
    }
}
event_type キーは GitHub ワークフローファイルの types フィールドと一致しなければなりません。レンダリングされたテンプレート文字列の内容と位置は、オートメーションが設定されているイベントまたはモデルバージョンによって異なります。${event_type} は LINK_ARTIFACT または ADD_ARTIFACT_ALIAS としてレンダリングされます。以下に例のマッピングを示します。
${event_type} --> "LINK_ARTIFACT" または "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を通じて登録されたモデルアーティファクトを使用することができます。
- 
リポジトリディスパッチの詳細については、GitHub Marketplace の公式ドキュメントを参照してください。 
- 
Webhook Automations for Model Evaluation と Webhook Automations for Model Deployment のビデオを視聴し、モデルの評価とデプロイメントのためのオートメーションを作成する方法を学びましょう。 
- 
W&B の レポート をレビューし、GitHub Actions webhook オートメーションを使用した Model CI の作成方法を説明しています。この GitHub リポジトリ をチェックして、Modal Labs webhook を使用した model CI の作成方法を学びましょう。 
この例のペイロードは、webhook を使用して Teams チャンネルに通知する方法を示しています。
{
"@type": "MessageCard",
"@context": "http://schema.org/extensions",
"summary": "New Notification",
"sections": [
  {
    "activityTitle": "Notification from WANDB",
    "text": "This is an example message sent via Teams webhook.",
    "facts": [
      {
        "name": "Author",
        "value": "${event_author}"
      },
      {
        "name": "Event Type",
        "value": "${event_type}"
      }
    ],
    "markdown": true
  }
]
}
実行時に W&B データをペイロードに挿入するためにテンプレート文字列を使用できます(上記の Teams の例に示したように)。
Slack アプリをセットアップし、Slack API ドキュメントで強調されている指示に従って、着信 webhook インテグレーションを追加します。Bot User OAuth Token の下で指定されているシークレットが W&B webhook のアクストークンであることを確認してください。
以下はペイロードの例です。
{
    "text": "New alert from WANDB!",
"blocks": [
    {
            "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "Registry event: ${event_type}"
        }
    },
        {
            "type":"section",
            "text": {
            "type": "mrkdwn",
            "text": "New version: ${artifact_version_string}"
        }
        },
        {
        "type": "divider"
    },
        {
            "type": "section",
        "text": {
            "type": "mrkdwn",
            "text": "Author: ${event_author}"
        }
        }
    ]
}
webhook のトラブルシューティング
W&B アプリ UI または Bash スクリプトを使用して、インタラクティブに webhook のトラブルシューティングを行います。新しい webhook を作成する際や既存の webhook を編集する際に webhook をトラブルシューティングできます。
チーム管理者は W&B アプリ UI を使用して webhook をインタラクティブにテストできます。
- W&B チーム設定ページに移動します。
- Webhooks セクションまでスクロールします。
- webhook の名前の横にある三点リーダー(ミートボールアイコン)をクリックします。
- Test を選択します。
- 現れた UI パネルから、表示されるフィールドに POST リクエストを貼り付けます。
 
- Test webhook をクリックします。W&B アプリ UI 内で、W&B はエンドポイントからの応答を投稿します。
 
Testing Webhooks in Weights & Biases のビデオを見て、デモをご覧ください。
このシェルスクリプトは、W&B が webhook オートメーションに送信する POST リクエストを生成する1つの方法を示しています。
以下のコードをシェルスクリプトにコピーし、webhook のトラブルシューティングを行います。以下の値を指定してください。
- ACCESS_TOKEN
- SECRET
- PAYLOAD
- API_ENDPOINT
webhook_test.shフィードバック
このページは役に立ちましたか?
Glad to hear it! If you have more to say, please let us know.
Sorry to hear that. Please tell us how we can improve.