認証の選択
各セクションで CoreWeave Kubernetes Service (CKS) が指定されていない限り、これらの例はサーバーレスキャパシティ上で実行されます。サンドボックスを所有するアカウントの認証情報を選択してください。キーまたはトークンの取得方法については、認証情報の選択と取得を参照してください。 使用する言語に応じた設定ファイルを、このページのスクリプトを実行する場所と同じディレクトリに保存してください。Python の例ではsandbox_auth.py から AUTH をインポートします。TypeScript の例では sandbox-client.mts から client をインポートします。これらのファイルは認証方法を選択するだけで、認証情報そのものは保存しません。Python の場合は、有効化した仮想環境を使用してください。TypeScript の場合は、まず npm install @coreweave/cwsandbox@1.0.0 でクライアントをインストールしてください。
- Forge APIキー
- CoreWeave API アクセストークン
SDK の
wandb インテグレーションで Forge APIキーを使用します。[WANDB-API-KEY] をお使いの APIキーに置き換えてください。- Python
- TypeScript
sandbox_auth.py
SandboxDefaults で placement_mode="cks" を設定します。TypeScript で CKS を選択するには、CoreWeave トークンを選択し、空でない runnerIds 配列を設定します。auth=AUTH を指定して Python のセッションを作成すると、そのセッションが所有するサンドボックスも認証されます。サンドボックスへの再接続、一覧表示、クリーンアップを行う際は、同じ認証情報を使用してください。
変数
プラットフォームは、すべてのサンドボックスで次の変数を設定します。
プラットフォームは、使用する SDK や API のバージョンに関係なく、これらの変数を設定します。
サンドボックス ID を取得するためにホスト名を解析しないでください。サンドボックスのホスト名はサンドボックス ID で始まりますが、基盤となる Pod が再起動すると変わる、自動生成された接尾辞が含まれています。代わりに
CW_SANDBOX_ID を使用してください。変数を読み取る
プラットフォーム変数は、各コンテナーのメインプロセス、そのプロセスが起動するすべてのプロセス、およびexec やストリーミング実行で起動されるプロセスで使用できます。ただし、子プロセスを起動する前に環境をクリアするプログラムは例外です。
- Python
- TypeScript
- Shell
変数を上書きする
プラットフォーム変数はデフォルトであり、予約名ではありません。サンドボックスに同じ名の変数を設定すると、サンドボックスはその値を使用し、プラットフォームはデフォルトを適用しません。[YOUR-VALUE] を、サンドボックスから返したい値に置き換えてください。
- Python
- TypeScript
-
空文字列を含む、すべての値が有効です。
CW_SANDBOX_IDを""に設定すると、変数は存在しますが、値は空になります。プラットフォームは空の値を未設定とは見なさず、置き換えません。 - ポリシーはプラットフォーム変数を上書きできません。 この名はオペレーターの設定では予約されているため、クラスターのポリシーが、設定した値を暗黙的に置き換えることはできません。
- シークレットも上書きとして扱われます。 同じ変数名に割り当てられたシークレットは、直接指定した値と同様に、プラットフォームのデフォルトの適用を抑制します。
メタデータであり、アイデンティティではありません
CW_SANDBOX_ID は参考情報としてのメタデータです。上書きできるため、サンドボックス内のコードは任意の値を報告できます。
複数のコンテナーを使用するサンドボックス
各コンテナーは、サンドボックスの最初のコンテナーに設定された値を受け取ります。ただし、そのコンテナーがCW_SANDBOX_ID を自身で設定する場合を除きます。明示的な値は、それを設定したコンテナーに対して優先されます。
これには 2 つの結果があります:
- 最初のコンテナーで変数を上書きする場合、何も設定していない他のすべてのコンテナーはその上書きを受け取ります。
- 最初のコンテナーでそれを空文字列に上書きする場合、他のコンテナーはその変数を一切受け取りません。
サンドボックスのライフサイクル全体にわたる動作
CW_SANDBOX_ID は、サンドボックスの有効期間中、次のように動作します。
- 値はサンドボックスの存続中は固定されます。 プラットフォームが作成時に割り当て、基盤となる Pod が再起動しても変更されません。
- リストアされたサンドボックスは新しいサンドボックスです。 ファイルシステムスナップショットからリストアすると、新しい ID を持つサンドボックスが作成され、
CW_SANDBOX_IDにその新しい値が設定されます。アプリケーションがスナップショットボリュームに書き込んだ以前の ID は、独自のデータとして保持され、更新されません。