Skip to main content
ソース: src/cwsandbox/_session.py:49
サンドボックスのライフサイクルを管理し、関数の実行機能を提供します。 次の場合にセッションを使用します。
  • 共通の設定で複数のサンドボックスを作成する場合
  • サンドボックスで Python 関数を実行する場合
  • 孤立したサンドボックスを自動的にクリーンアップしたい場合
このセッションに関連付けられたサンドボックスで exec() が完了すると、 メトリクスが自動的に追跡されます。特定のトレーニングステップでメトリクスをログするには、 log_metrics(step=N) を使用します。

プロパティ

sandbox_count

このセッションで現在追跡されているサンドボックスの数です。

メソッド

log_metrics

蓄積されたサンドボックスのメトリクスを wandb にログします。 トレーニング中にこのメソッドを呼び出すと、サンドボックスの使用状況をトレーニングステップに関連付けられます。 メトリクスは exec() の完了時に自動的に追跡されるため、 log_metrics() を呼び出す必要があるのはステップとの関連付けを行う場合のみです。 メトリクスはセッションのクローズ時にも自動的にログされます。 パラメーター
  • step (int | None): メトリクスに関連付けるトレーニングステップ。指定した場合、メトリクスは wandb 上でこのステップ番号にログされます。
  • reset (bool): True (デフォルト) の場合、ログに成功した後、蓄積されたメトリクスをリセットします。log() が失敗した場合 (実行中の wandb run がない場合) は、メトリクスは保持されます。False に設定すると、ログの成否にかかわらず蓄積を継続します。
戻り値
  • bool: メトリクスがログされた場合は True、レポーターが設定されていない場合は False
  • bool: または実行中の wandb run がない場合。
サンプル

get_metrics

現在蓄積されているメトリクスを取得します。 戻り値
  • dict[str, Any]: cwsandbox/* 接頭辞付きのメトリクス名と値を含む辞書。
  • dict[str, Any]: レポーター が設定されていない場合は空の dict。

close

管理対象のすべてのサンドボックスを停止し、OperationRef を即座に返します。 戻り値
  • OperationRef[None]: OperationRef[None]: .result() を使用すると、すべてのサンドボックスが停止するまでブロックします。
送出される例外
  • SandboxError: 実行中のサンドボックスが 1 つ以上停止に失敗した場合。
サンプル

sandbox

セッションのデフォルト設定で、未起動のサンドボックスを作成します。 ネットワーク呼び出しは行わず、すぐに制御を返します。サンドボックスは 最初の操作 (exec、read_file、write_file、 wait) の実行時に自動的に起動します。start().result() で明示的に起動することもできます。 パラメーター
  • command (str | None): サンドボックスで実行するコマンド
  • args (list[str] | None): コマンドの引数
  • container_image (str | None): 使用するコンテナーイメージ
  • tags (list[str] | None): サンドボックスのタグ (template_id が設定されている場合もセッションのデフォルトとマージされ、list()/adopt でサンドボックスを検索できます) 。テンプレートを使用する場合 (テンプレートが所有する spec) 、環境変数とアノテーションはマージされません。
  • profile_ids: 1.x で削除されました。値を渡すと TypeError が送出されます。
  • profile_names: 1.x で削除されました。値を渡すと TypeError が送出されます。
  • runner_ids (list[str] | None): オプションの CKS ランナー固定指定 (サーバーレスおよび placement_spillover='serverless_then_cks' とは併用できません)
  • resources (ResourceOptions | dict[str, Any] | None): リソース設定。リクエストと制限を個別に指定する ResourceOptions、または後方互換性のある Guaranteed QoS 用のフラットな dict を受け入れます。
  • mounted_files (list[dict[str, Any]] | None): 起動時にサンドボックスにマウントするファイル。各 dict には mount_path (str) と file_content (bytes) が必要です。注: マウントされたファイルは実行時に読み取り専用です。ファイルを変更するには、サンドボックスの実行開始後に sandbox.write_file() を使用します。
  • s3_mount: 1.x で削除されました。値を渡すと TypeError が送出されます。
  • ports: 1.x で削除されました。代わりに services=[Service(...)] を使用します。
  • network (NetworkOptions | dict[str, Any] | None): 拒否フラグと、作成時に指定するオプションのホスト名グラントを含む NetworkOptions (または dict) 。ポートの公開には services= を使用します。
  • file_system_snapshot (FileSystemSnapshotOptions | dict[str, Any] | None): 単一マウントを簡便に指定する FSS オプション (FileSystemSnapshotOptions または dict) 。複数ボリュームの構成には volumes= を推奨します。
  • max_timeout_seconds: 1.x で削除されました。request_timeout_seconds を使用します。
  • request_timeout_seconds (float | None): サンドボックス RPC のクライアント側 HTTP タイムアウト。デフォルトはセッションの SandboxDefaults.request_timeout_seconds です。
  • data_plane_mode (DataPlaneMode | str | None): セッションのデータプレーンのトランスポートポリシーを上書きします。
  • auth (AuthConfig | None): 認証方式、解決済みのヘッダー、またはプロバイダー。このサンドボックスについてセッションのデフォルトを上書きします。
  • environment_variables (dict[str, str] | None): サンドボックスに注入する環境変数。セッションのデフォルトとマージされ、一致するキーを上書きします。機密性のない設定にのみ使用してください。
  • annotations (dict[str, str] | None): サンドボックスの Kubernetes Pod アノテーション。セッションのデフォルトとマージされ、一致するキーを上書きします。機密性のないメタデータにのみ使用してください。
  • secrets (Sequence[Secret | dict[str, Any]] | None): 環境変数として注入するシークレット。セッションのデフォルトとマージされます (デフォルトが先、このリストが後) 。
  • containers (Sequence[Container | Mapping[str, Any]] | None): 複数コンテナーの spec。単一コンテナーのキーワード引数とは相互に排他的です。セッションの defaults.secrets、environment_variables、security_context、working_dir を置き換えます。これらは各 Container に設定してください。@session.function() では使用されません。
戻り値
  • Sandbox: セッションに登録された、未起動の Sandbox。
送出される例外
  • SandboxError: セッションが閉じられている場合。
サンプル

list

サンドボックスを一覧表示し、必要に応じてこのセッションに取り込みます。 セッションのデフォルトのタグがフィルターに自動的に含まれます。 これにより、このセッションまたは 同じデフォルトを使用する以前の run で作成されたサンドボックスを簡単に検索できます。 デフォルトでは、アクティブ (非終端状態) なサンドボックスのみが返されます。 show_terminated=True を設定すると、検索範囲が広がり、終端状態の サンドボックス (完了、失敗、終了) も含まれます。 終端ステータスのフィルター (例:status="completed") も、 検索範囲を自動的に広げます。 パラメーター
  • tags (list[str] | None): フィルターに使用する追加のタグ (セッションのデフォルトのタグと統合されます)
  • status (str | None): ステータスでフィルターします
  • profile_ids (list[str] | None): 1.x で削除されました。値を渡すと TypeError が送出されます。
  • profile_names (list[str] | None): 1.x で削除されました。値を渡すと TypeError が送出されます。
  • runner_ids (list[str] | None): ランナー ID でフィルターします (セッションの runner_ids が設定されている場合は、それがデフォルトになります)
  • volume_ids (list[str] | tuple[str, ...] | None): これらの登録済み Volume ID に関連付けられたサンドボックスに絞り込みます
  • show_terminated (bool): True の場合、終端状態のサンドボックス (完了、失敗、終了) を含めます。デフォルトは False です。
  • adopt (bool): True の場合、検索されたサンドボックスをこのセッションに登録し、セッションが閉じられたときに停止されるようにします
戻り値
  • OperationRef[list[Sandbox]]: OperationRef[list[Sandbox]]: .result() を使用して、結果が得られるまでブロックします。
  • OperationRef[list[Sandbox]]: または、Asyncコンテキストで直接 await します。
サンプル

from_id

既存のサンドボックスに接続し、必要に応じてこのセッションに取り込みます。 パラメーター
  • sandbox_id (str): 既存のサンドボックスの ID
  • adopt (bool): True (デフォルト) の場合、サンドボックスをこのセッションに登録します
戻り値
  • OperationRef[Sandbox]: OperationRef[Sandbox]: .result() を使用して Sandbox インスタンスが得られるまでブロックします。
  • OperationRef[Sandbox]: または、Asyncコンテキストで直接 await します。
サンプル

adopt

既存の Sandbox インスタンスをこのセッションに取り込み、クリーンアップをトラッキングします。 Sandbox.list() または Sandbox.from_id() で取得した Sandbox を、 セッション終了時に自動的に停止させたい場合に使用します。 パラメーター
  • sandbox (Sandbox): トラッキングする Sandbox インスタンス
送出される例外
  • SandboxError: セッションが終了している場合
  • ValueError: サンドボックスに sandbox_id がない場合
サンプル

function

Python 関数をサンドボックスで実行するデコレーターです。 関数を呼び出すたびにエフェメラルなサンドボックスを作成し、関数を実行して、 結果を返します。サンドボックスは自動的にクリーンアップされます。 デコレーターを適用する関数は同期関数である必要があります。Async 関数はサポートされていません。 パラメーター
  • container_image (str | None): この関数で使用するセッションのデフォルトイメージを上書きします
  • temp_dir (str | None): サンドボックス内のペイロード/結果ファイル用の一時ディレクトリを上書きします。デフォルトはセッションのデフォルトです。存在しない場合は作成されます。
  • profile_ids: 1.x で削除されました。値を渡すと TypeError が送出されます。
  • profile_names: 1.x で削除されました。値を渡すと TypeError が送出されます。
  • runner_ids (list[str] | None): 任意の CKS ランナー固定指定です (サーバーレスおよび placement_spillover='serverless_then_cks' とは併用できません)
  • resources (ResourceOptions | dict[str, Any] | None): リソース設定です。リクエストと制限を個別に指定する ResourceOptions、または後方互換の Guaranteed QoS 用のフラットな dict を受け入れます。
  • mounted_files (Sequence[dict[str, Any]] | None): 起動時にサンドボックスにマウントするファイルです。各 dict には mount_path (str) と file_content (bytes) が必要です。注: マウントされたファイルは実行時には読み取り専用です。ファイルを変更するには、サンドボックスの稼働後に sandbox.write_file() を使用してください。
  • s3_mount: 1.x で削除されました。値を渡すと TypeError が送出されます。
  • ports: 1.x で削除されました。代わりに services=[Service(...)] を使用してください。
  • network (NetworkOptions | dict[str, Any] | None): 拒否フラグと、任意の作成時ホスト名グラントを指定する NetworkOptions (または dict) です。ポートの公開には services= を使用します。
  • file_system_snapshot (FileSystemSnapshotOptions | dict[str, Any] | None): 単一マウント用の簡易 FSS オプション (FileSystemSnapshotOptions または dict) です。複数ボリュームの構成では volumes= を推奨します。
  • max_timeout_seconds: 1.x で削除されました。request_timeout_seconds を使用してください。
  • request_timeout_seconds (float | None): サンドボックス RPC 用のクライアント側 HTTP タイムアウトです。デフォルトはセッションの SandboxDefaults.request_timeout_seconds です。
  • data_plane_mode (DataPlaneMode | str | None): セッションのデータプレーンのトランスポートポリシーを上書きします。
  • environment_variables (dict[str, str] | None): サンドボックスに注入する環境変数です。セッションのデフォルトとマージされ、一致するキーを上書きします。機密性のない設定にのみ使用してください。
  • annotations (dict[str, str] | None): サンドボックスの Kubernetes Pod アノテーションです。セッションのデフォルトとマージされ、一致するキーを上書きします。機密性のないメタデータにのみ使用してください。
戻り値
  • Callable[[Callable[P, R]], RemoteFunction[P, R]]: 関数を RemoteFunction としてラップするデコレーターです
サンプル
最終更新日 2026年10月15日