> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-docs-hivemind-launch.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# サンドボックスを作成する

> Serverless Sandboxes を作成する方法を説明します。

<Warning>Serverless Sandboxes はパブリックプレビューです。</Warning>

W\&B でサンドボックスを作成できます。各サンドボックスは、独自の[ファイルシステム](/ja/sandboxes/file-access)、ネットワーク、プロセス空間を持つ専用のコンテナー内で実行されます。

<Info>
  デフォルトでは、サンドボックスは `python:3.11` をベースイメージとして使用します。別のイメージを使用するには、[`Sandbox.run()`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox#run) または [`SandboxDefaults`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox-defaults) に `container_image` を渡してください。W\&B はパブリックなコンテナーイメージのみをサポートします。

  次のコードスニペットは、`python:3.15` イメージでサンドボックスを作成し、その中で `python --version` を実行します。

  ```python theme={null}
  from wandb.sandbox import Sandbox

  with Sandbox.run(container_image="python:3.15") as sandbox:
      sandbox.exec(["python", "--version"]).result()
  ```
</Info>

<div id="create-a-sandbox">
  ## サンドボックスを作成する
</div>

[`Sandbox.run()`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox#run) を使用して、サンドボックスを作成し、起動します。このメソッドは、環境とやり取りするために使用できる `Sandbox` オブジェクトを返します。

<Tip>W\&B では、ブロックを抜けるときにサンドボックスが自動的に停止されるよう、コンテキストマネージャー (`with` ステートメント) を使用することを推奨しています。エラーが発生した場合でも同様です。</Tip>

次の例では、デフォルトのコンテナーイメージ (`python:3.11`) を使用してサンドボックスを作成します。

```python theme={null}
from wandb.sandbox import Sandbox

with Sandbox.run() as sandbox:
    print(sandbox)
```

サンドボックス内でコマンドを実行する方法については、[コマンドを run する](/ja/sandboxes/run-commands)を参照してください。サンドボックスのライフサイクルと状態については、[サンドボックスのライフサイクル](/ja/sandboxes/lifecycle)を参照してください。

<div id="start-a-sandbox-without-a-main-command">
  ### メイン コマンドを指定せずにサンドボックスを開始する
</div>

先にサンドボックスを作成し、後からその中で処理を実行する場合は、コマンドを指定せずに `Sandbox.run()` を呼び出します。

```python theme={null}
from wandb.sandbox import Sandbox

with Sandbox.run() as sandbox:
    print(sandbox)
```

このパターンは、対話型かつ複数ステップのワークフローに便利です。サンドボックス内でコマンドを run する方法については、[コマンドを run する](/ja/sandboxes/run-commands)を参照してください。

<div id="start-a-sandbox-with-a-main-command">
  ### メインコマンドを指定して サンドボックス を開始する
</div>

`Sandbox.run()` にコマンドを渡すこともできます。サンドボックス で 1 つのジョブを開始から終了まで実行させる場合は、このパターンを使用してください。メインプロセスが終了すると、サンドボックス は [COMPLETED or FAILED](/ja/sandboxes/lifecycle) などの終了状態に入ります。

`Sandbox.run()` に渡したコマンドは、サンドボックス のメインプロセスとして起動されます。

```python theme={null}
from wandb.sandbox import Sandbox

sandbox = Sandbox.run("python", "train.py")
```

`Sandbox.run()` は、コマンドを監視し、完了を待機するために使用できる `Sandbox` オブジェクトを返します。たとえば、コマンドの完了を待って結果を取得するには、次のようにします。

```python theme={null}
from wandb.sandbox import Sandbox

sandbox = Sandbox.run("python", "train.py")

# 必要に応じてコマンドの完了を待機する
sandbox.wait_until_complete().result()
```

<div id="create-multiple-sandboxes-with-a-session">
  ## セッションで複数のサンドボックスを作成する
</div>

[`Session`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/session) を使用すると、複数のサンドボックスを作成して管理できます。セッションが閉じられると (たとえば `with` ブロックを終了したとき) 、そのセッションで作成されたすべてのサンドボックスは自動的に停止します。

必要に応じて、[`SandboxDefaults`](https://docs.coreweave.com/products/coreweave-sandbox/client/ref/core/sandbox-defaults) オブジェクトをセッションに渡して、そのセッションで作成されるすべてのサンドボックスに適用する再利用可能なデフォルト設定を定義できます。たとえば、セッション内のすべてのサンドボックスに対して、デフォルトのコンテナーイメージ、ネットワーク設定、または最大有効期間を指定できます。

`session.sandbox()` は、まだ開始されていないサンドボックスを返します。`Sandbox.exec()`、`Sandbox.read_file()`、またはその他の操作を呼び出すと、自動的に開始されます。

次のコードスニペットは、デフォルト設定 (`SandboxDefaults`) を使用する 2 つのサンドボックスを作成するセッションを作成します。

```python theme={null}
from wandb.sandbox import Session, SandboxDefaults

defaults = SandboxDefaults(
    container_image="python:3.11",
    max_lifetime_seconds=300,
    tags=("batch-job",),
)

with Session(defaults) as session:
    sandbox1 = session.sandbox()
    sandbox2 = session.sandbox()

    print(sandbox1)
    print(sandbox2)
```
