始める前に
W&B シークレット注入を使用するには、W&B APIキーで認証されたサンドボックスが必要です。この機能はサーバーレスサンドボックスでは利用できますが、独自の CoreWeave Kubernetes Service (CKS) クラスター上のサンドボックスでは利用できません。CKS への配置では CoreWeave API アクセストークンを使用します。このトークンに別途 W&B キーを組み合わせて、CKS サンドボックスのシークレットを解決することはできません。
サンプルを実行するには、以下が必要です。
- サーバーレスサンドボックスへのアクセス権を持つ W&B SaaS (Software as a Service) アカウント。
- W&B チームの Secret Manager に登録された
HF_TOKENという名前のシークレット。シークレットが存在しない場合は、W&B 管理者にシークレットの追加を依頼してください。 - そのチームへのアクセス権を持つ W&B APIキー。
WANDB_API_KEY を設定します。[WANDB-API-KEY] はご自身の W&B APIキーに置き換えてください。
WANDB_ENTITY はオプションです。指定しない場合は、APIキーのデフォルトの entity が使用されます。シークレットが別のチームに属している場合は、WANDB_ENTITY にそのチームを設定してください。[WANDB-TEAM] はチーム名に置き換えます。
- Python
- TypeScript
Python 3.11 以降を使用し、必要に応じて
uv をインストールします。Python 環境に、W&B 認証用の依存関係とあわせてクライアントをインストールします。シークレットを注入する
Python ではstore="wandb"、TypeScript では store: "wandb" を使用します。このストアは、認証済みの W&B チームのシークレットを解決します。このフローでは、組織のシークレットストアを登録する必要はありません。
以下のサンプルでは、HF_TOKEN を注入し、値を出力せずにその存在を確認します。サンドボックス内の環境変数名は、デフォルトでシークレット名と同じになります。
- Python
- TypeScript
AuthStrategy.WANDB を使用して、W&B 認証を明示的に選択します。Secret is available を出力し、操作の完了後にサンドボックスを停止します。サンドボックス内で実行されるコードは、HF_TOKEN から値を読み取れます。
secrets には、シークレットの値ではなく名前を渡してください。値はサーバー側で解決されます。値を出力したり、ログに書き込んだりしないでください。
シークレット参照フィールド
Python のSecret または TypeScript の secrets エントリでは、次のフィールドを使用します。
カスタム環境変数名を使用する
シークレットを受け取る環境変数を指定するには、Python ではenv_var、TypeScript では envVar を設定します。次のサンプルでは、HF_TOKEN シークレットを HUGGINGFACE_TOKEN として公開します。
- Python
- TypeScript
HUGGINGFACE_TOKEN が設定されていることを確認してから Secret is available を出力します。
構造化シークレットからフィールドを選択する
JSON オブジェクトから 1 つの値だけを注入するには、field にそのトップレベルキーを指定します。ネストされたパスはサポートされていません。値が JSON 文字列の場合、注入される値は JSON の引用符で囲まれません。
この例では、{"password":"[DB-PASSWORD]"} のような JSON オブジェクトを値とするチームシークレット DB_CREDENTIALS を追加します。シークレットを保存する前に、[DB-PASSWORD] を実際のパスワードに置き換えてください。以下のサンプルでは、このシークレットの password フィールドを DB_PASSWORD に注入します。
- Python
- TypeScript
Secret is available と出力します。シークレットが JSON オブジェクトでない場合、指定したキーが存在しない場合、またはその値が null の場合は、フィールドの選択に失敗します。
シークレット参照を再利用する
Python のセッションでは、共有するシークレット参照をSandboxDefaults に指定します。TypeScript では、サンドボックスを作成するときに secrets 配列を使い回します。
- Python
- TypeScript
secrets をマージし、完全に一致する重複は無視します。異なる参照が同じ環境変数を対象としている場合、クライアントはサンドボックスを作成する前に ValueError を送出します。Python の型シグネチャについては、Secret リファレンスを参照してください。シークレット注入のトラブルシューティング
シークレット参照を指定したサンドボックスが起動しない場合は、エラーテキストをもとに認証、選択したチーム、配置を確認してください。
W&B のシークレット注入は CKS 配置では利用できません。CoreWeave API アクセストークンと W&B APIキーの両方を設定した場合も同様です。