認証を選択する
セクションで CKS が指定されていない限り、これらの例はサーバーレスキャパシティ上で実行されます。サンドボックスを所有するアカウントの認証情報を選択してください。キーまたはトークンの取得方法については、認証情報を選択して取得するを参照してください。 インストールコマンドは、有効化した Python 仮想環境で実行してください。 使用する認証情報のタブにある Python コードを、このページで実行する Python スクリプトと同じディレクトリにsandbox_auth.py として保存してください。このファイルに保存されるのは認証情報そのものではなく、どの認証方式を使うかという選択だけです。各例ではこのファイルから AUTH をインポートし、新しいサンドボックスやセッションを作成するたびに明示的に渡します。
- Forge API キー
- CoreWeave API アクセストークン
SDK の W&B 認証方式を介して Forge APIキーを使用します。
sandbox_auth.py
SandboxDefaults で placement_mode="cks" を設定してください。auth=AUTH を指定してセッションを作成すると、そのセッションが所有するサンドボックスも認証されます。サンドボックスへの再接続、一覧表示、クリーンアップを行う際も、同じ認証情報を使用してください。
基本操作
このセクションの例では、最も一般的なファイル操作を扱っています。サンドボックス内のパスへのデータの書き込みと、データの読み戻しです。ファイル操作はOperationRef オブジェクトを返します。.result() を使用して完了をブロックします。
ファイルの書き込み
ファイルの書き込みや読み取りを行う間は、サンドボックスを実行したままにしておきます。この例では、2 つのファイルを作成し、コンテキストマネージャーがサンドボックスを停止する前にそれらを読み取ります:ファイルの読み取り
read_file() はファイルの内容をバイト列として返します。ファイルの書き込み の例では、decode() を使用してテキストとして読み取り、json.loads() を使用して JSON を解析しています。どちらの読み取りも、実行中のサンドボックスのコンテキスト内で行われます。
並列操作
ファイル操作はすぐに戻るため、自然に並列度を高められます。独立したファイルが複数ある場合、アップロードやダウンロードを並列に実行すると、全体の転送時間を短縮できます。並列アップロード
並列ダウンロード
アップロード・処理・ダウンロードのパターン
一般的なワークフローでは、入力ファイルをアップロードし、処理を実行して、結果をダウンロードします。エラー処理
ファイル操作は、パスが存在しない場合や書き込み可能でない場合に失敗する可能性があります。これらのケースを処理し、影響を受けるパスを検査するには、SandboxFileError をキャッチします。
ファイルが見つかりません
書き込みエラー
バイナリファイル
ファイル操作では、画像やシリアライズされた Python オブジェクトなど、あらゆるバイナリコンテンツを扱えます。テキストのエンコーディング
ファイルはバイト列として転送されるため、非 ASCII 文字の文字化けを防ぐには、テキストを明示的にエンコードおよびデコードする必要があります。大きなファイルに関する考慮事項
read_file および write_file API は、小規模から中規模のファイルに適しています。大きなファイルを扱う場合は、次の点を考慮してください。
- ファイルは API を介して転送されるため、帯域幅を考慮してください。
- 大規模なデータセットには、可能な限りストリーミングを使用してください。
- API を介してデータを転送せず、オブジェクトストレージに直接アクセスしてください。
object_storage_access パラメーターは、一時的な CoreWeave AI Object Storage の認証情報を作成し、サンドボックスのコンテナーに提供します。これにより、ワークロードはバケットを直接読み書きできるため、大きなオブジェクトが read_file や write_file を経由することはありません。事前に、組織でサンドボックスのコントロールプレーンに Workload Identity Federation の設定を登録しておく必要があります。詳しくは、オブジェクトストレージへのアクセスを参照してください。
次の例では、CoreWeave 認証を使用して 1 つのバケットへの読み書きアクセス権を持つサンドボックスを起動し、認証情報が注入されたことを確認します。CWSANDBOX_API_KEY に設定済みの組織の CoreWeave API アクセストークンを設定し、[BUCKET-NAME] をご使用のバケット名に置き換えてください。
object_prefix を使用します。データの読み取りのみを行うワークロードには、ObjectStoragePermission.READ を使用します。
サンドボックス内でのみ使用する大容量の一時データには、代わりにボリュームをアタッチしてください。詳しくは Volumes を参照してください。