> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# リモート関数

> 自動シリアライズを使用して、サンドボックス内で Python 関数を実行します。

ここで紹介する例では、`CWSANDBOX_API_KEY` に設定した CoreWeave API アクセストークンを使用します。Forge APIキーによる認証については、[はじめに](/ja/products/sandboxes/get-started)を参照してください。CKS の要件については、[配置モード](/ja/products/sandboxes/placement)を参照してください。

このチュートリアルでは、リモート関数を使用してサンドボックス内で Python 関数を実行する方法を説明します。シェルコマンドの文字列を組み立てる代わりに、サンドボックスで実行されるコードをローカル関数のように呼び出しできます。このチュートリアルは、Python コードからサンドボックス内のコンピュートを直接呼び出し、型付きの結果を取得したい開発者を対象としています。

<h2 id="define-and-call-a-remote-function">
  リモート関数を定義してCallする
</h2>

関数を `@session.function()` でデコレートすると、`.remote()` を使ってサンドボックス内でその関数をCallできます。Callは参照を返すので、`.result()` で解決します:

```python theme={"system"}
from cwsandbox import Sandbox, SandboxDefaults

with Sandbox.session(SandboxDefaults()) as session:
    @session.function()
    def add(x: int, y: int) -> int:
        return x + y

    result = add.remote(2, 3).result()  # 5
```

<h2 id="run-functions-in-parallel-with-map">
  `.map()` で関数を並列に実行する
</h2>

`.map()` を使用すると、多数の invocation を一度にディスパッチして、その結果を収集できます。独立した Call は 1 つずつではなく同時に実行されます。

```python theme={"system"}
@session.function()
def square(x: int) -> int:
    return x * x

refs = square.map([(1,), (2,), (3,)])
results = [r.result() for r in refs]  # [1, 4, 9]
```

<h2 id="next-steps">
  次のステップ
</h2>

これで、サンドボックス内の Python 関数をローカル関数と同じように呼び出せるようになり、`.map()` を使えば処理を並列に展開できます。

シリアライズモードや `.local()` によるテストなどの詳細については、[リモート関数ガイド](/ja/products/sandboxes/client/guides/remote-functions)を参照してください。
