Create a webhook automation
4 minute read
This feature requires a Pro or Enterprise plan.
このページでは、webhook オートメーション の作成方法について説明します。Slack オートメーションを作成するには、代わりに Slack オートメーションの作成 を参照してください。
大まかに言うと、webhook オートメーションを作成するには、次の手順を実行します。
- 必要に応じて、アクセストークン、パスワード、SSH キーなど、オートメーションに必要な機密文字列ごとに W&B シークレットを作成 します。シークレットは、 Team の設定で定義されます。
- webhook を作成 して、エンドポイントと認証の詳細を定義し、インテグレーションに必要なシークレットへのアクセスを許可します。
- オートメーションを作成 して、監視する イベント と、Weights & Biases が送信するペイロードを定義します。ペイロードに必要なシークレットへのオートメーションアクセスを許可します。
webhook を作成する
Team の管理者は、 Team に webhook を追加できます。
-
Weights & Biases にログインし、Team の Settings ページに移動します。
-
Webhooks セクションで、New webhook をクリックします。
-
webhook の名前を入力します。
-
webhook のエンドポイント URL を入力します。
-
webhook に Bearer トークンが必要な場合は、Access token をそれを含む シークレット に設定します。webhook オートメーションを使用すると、Weights & Biases は
Authorization: Bearer
HTTP ヘッダーをアクセストークンに設定し、${ACCESS_TOKEN}
ペイロード変数 でトークンにアクセスできます。 -
webhook のペイロードにパスワードまたはその他の機密文字列が必要な場合は、Secret をそれを含むシークレットに設定します。webhook を使用するオートメーションを設定すると、名前の先頭に
$
を付けることで、ペイロード変数 としてシークレットにアクセスできます。webhook のアクセストークンがシークレットに保存されている場合は、次の手順も完了して、シークレットをアクセストークンとして指定する 必要 があります。
-
Weights & Biases がエンドポイントに接続して認証できることを確認するには:
- 必要に応じて、テストするペイロードを指定します。ペイロードで webhook がアクセスできるシークレットを参照するには、名前の先頭に
$
を付けます。このペイロードはテスト専用であり、保存されません。オートメーションのペイロードは、オートメーションを作成 するときに設定します。シークレットとアクセストークンがPOST
リクエストのどこに指定されているかを確認するには、webhook のトラブルシューティング を参照してください。 - Test をクリックします。Weights & Biases は、設定した資格情報を使用して webhook のエンドポイントへの接続を試みます。ペイロードを指定した場合は、Weights & Biases がそれを送信します。
テストが成功しない場合は、webhook の設定を確認して、もう一度お試しください。必要に応じて、webhook のトラブルシューティング を参照してください。
- 必要に応じて、テストするペイロードを指定します。ペイロードで webhook がアクセスできるシークレットを参照するには、名前の先頭に
これで、webhook を使用する オートメーションを作成 できます。
オートメーションを作成する
webhook を設定 したら、Registry または Project を選択し、次の手順に従って webhook をトリガーするオートメーションを作成します。
Registry 管理者は、その Registry でオートメーションを作成できます。Registry オートメーションは、今後追加されるものを含め、Registry 内のすべてのコレクションに適用されます。
-
Weights & Biases にログインします。
-
Registry の名前をクリックして詳細を表示します。
-
Registry の範囲に設定されたオートメーションを作成するには、Automations タブをクリックし、Create automation をクリックします。Registry の範囲に設定されたオートメーションは、そのすべてのコレクション(今後作成されるものを含む)に自動的に適用されます。
Registry 内の特定のコレクションのみを範囲とするオートメーションを作成するには、コレクションのアクション
...
メニューをクリックし、Create automation をクリックします。または、コレクションを表示しながら、コレクションの詳細ページの Automations セクションにある Create automation ボタンを使用して、コレクションのオートメーションを作成します。 -
監視する Event を選択します。イベントに応じて表示される追加フィールドに入力します。たとえば、An artifact alias is added を選択した場合は、Alias regex を指定する必要があります。Next step をクリックします。
-
webhook を所有する Team を選択します。
-
Action type を Webhooks に設定し、使用する webhook を選択します。
-
webhook のアクセストークンを設定した場合は、
${ACCESS_TOKEN}
ペイロード変数 でトークンにアクセスできます。webhook のシークレットを設定した場合は、名前の先頭に$
を付けることで、ペイロードでアクセスできます。webhook の要件は、webhook のサービスによって決まります。 -
Next step をクリックします。
-
オートメーションの名前を入力します。必要に応じて、説明を入力します。Create automation をクリックします。
Weights & Biases 管理者は、Project でオートメーションを作成できます。
-
Weights & Biases にログインし、Project ページに移動します。
-
サイドバーで、Automations をクリックします。
-
Create automation をクリックします。
-
監視する Event を選択します。
-
イベントに応じて表示される追加フィールドに入力します。たとえば、An artifact alias is added を選択した場合は、Alias regex を指定する必要があります。
-
必要に応じて、コレクションフィルターを指定します。それ以外の場合、オートメーションは、今後追加されるものを含め、Project 内のすべてのコレクションに適用されます。
Next step をクリックします。
-
-
webhook を所有する Team を選択します。
-
Action type を Webhooks に設定し、使用する webhook を選択します。
-
webhook にペイロードが必要な場合は、ペイロードを作成して Payload フィールドに貼り付けます。webhook のアクセストークンを設定した場合は、
${ACCESS_TOKEN}
ペイロード変数 でトークンにアクセスできます。webhook のシークレットを設定した場合は、名前の先頭に$
を付けることで、ペイロードでアクセスできます。webhook の要件は、webhook のサービスによって決まります。 -
Next step をクリックします。
-
オートメーションの名前を入力します。必要に応じて、説明を入力します。Create automation をクリックします。
オートメーションの表示と管理
- Registry のオートメーションは、Registry の Automations タブから管理します。
- コレクションのオートメーションは、コレクションの詳細ページの Automations セクションから管理します。
これらのページのいずれかから、Registry 管理者は既存のオートメーションを管理できます。
- オートメーションの詳細を表示するには、その名前をクリックします。
- オートメーションを編集するには、アクション
...
メニューをクリックし、Edit automation をクリックします。 - オートメーションを削除するには、アクション
...
メニューをクリックし、Delete automation をクリックします。確認が必要です。
Weights & Biases 管理者は、Project の Automations タブから Project のオートメーションを表示および管理できます。
- オートメーションの詳細を表示するには、その名前をクリックします。
- オートメーションを編集するには、アクション
...
メニューをクリックし、Edit automation をクリックします。 - オートメーションを削除するには、アクション
...
メニューをクリックし、Delete automation をクリックします。確認が必要です。
ペイロードリファレンス
これらのセクションを使用して、webhook のペイロードを作成します。webhook とそのペイロードのテストの詳細については、webhook のトラブルシューティング を参照してください。
ペイロード変数
このセクションでは、webhook のペイロードの作成に使用できる変数について説明します。
変数 | 詳細 |
---|---|
${project_name} |
アクションをトリガーした変更を所有する Project の名前。 |
${entity_name} |
アクションをトリガーした変更を所有する Entity または Team の名前。 |
${event_type} |
アクションをトリガーしたイベントのタイプ。 |
${event_author} |
アクションをトリガーしたユーザー。 |
${artifact_collection_name} |
Artifact バージョンがリンクされている Artifact コレクションの名前。 |
${artifact_metadata.<KEY>} |
アクションをトリガーした Artifact バージョンからの任意のトップレベル メタデータ キーの値。<KEY> をトップレベル メタデータ キーの名前に置き換えます。トップレベル メタデータ キーのみが、webhook のペイロードで使用できます。 |
${artifact_version} |
アクションをトリガーした Artifact バージョンの Wandb.Artifact 表現。 |
${artifact_version_string} |
アクションをトリガーした Artifact バージョンの string 表現。 |
${ACCESS_TOKEN} |
アクセストークンが設定されている場合は、webhook で設定されたアクセストークンの値。アクセストークンは、Authorization: Bearer HTTP ヘッダーで自動的に渡されます。 |
${SECRET_NAME} |
設定されている場合は、webhook で設定されたシークレットの値。SECRET_NAME をシークレットの名前に置き換えます。 |
ペイロードの例
このセクションには、一般的なユースケースの webhook ペイロードの例が含まれています。この例では、ペイロード変数 の使用方法を示します。
Weights & Biases からリポジトリディスパッチを送信して、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 ワークフロー 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>"
テンプレート文字列を使用して、Weights & Biases から GitHub Actions およびその他のツールにコンテキストを動的に渡します。これらのツールが Python スクリプトを呼び出すことができる場合は、Weights & Biases API を使用して、登録されたモデル Artifacts を利用できます。
-
リポジトリディスパッチの詳細については、GitHub Marketplace の公式ドキュメント を参照してください。
-
モデル評価の Webhook オートメーション および モデルデプロイメントの Webhook オートメーション のビデオをご覧ください。これらのビデオでは、モデル評価およびデプロイメントのオートメーションを作成する方法を説明しています。
-
Weights & Biases レポート を確認してください。このレポートでは、モデル CI に Github Actions webhook オートメーションを使用する方法を示しています。この GitHub リポジトリ をチェックして、Modal Labs webhook でモデル 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
}
]
}
テンプレート文字列を使用して、実行時に Weights & Biases データをペイロードに挿入できます(上記の Teams の例に示すように)。
Slack API ドキュメント で強調表示されている手順に従って、Slack アプリを設定し、受信 webhook インテグレーションを追加します。Bot User OAuth Token
で指定されたシークレットが、Weights & Biases 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 のトラブルシューティング
Weights & Biases App UI を使用してインタラクティブに、または Bash スクリプトを使用してプログラムで webhook のトラブルシューティングを行います。新しい webhook を作成するとき、または既存の webhook を編集するときに、webhook のトラブルシューティングを行うことができます。
Team 管理者は、Weights & Biases App UI を使用して webhook をインタラクティブにテストできます。
- Weights & Biases Team の Settings ページに移動します。
- Webhooks セクションまでスクロールします。
- webhook の名前の横にある水平方向の 3 つのドキュメント(ミートボールアイコン)をクリックします。
- Test を選択します。
- 表示される UI パネルから、表示されるフィールドに POST リクエストを貼り付けます。
- Test webhook をクリックします。Weights & Biases App UI 内で、Weights & Biases はエンドポイントからの応答を投稿します。
デモンストレーションについては、ビデオ Weights & Biases での Webhook のテスト をご覧ください。
このシェルスクリプトは、トリガーされたときに Weights & Biases が webhook オートメーションに送信するリクエストと同様の POST
リクエストを生成する 1 つの方法を示しています。
以下のコードをコピーしてシェルスクリプトに貼り付け、webhook のトラブルシューティングを行います。次の独自の値(バリュー)を指定します。
ACCESS_TOKEN
SECRET
PAYLOAD
API_ENDPOINT
webhook_test.sh
[i18n] feedback_title
[i18n] feedback_question
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.