プロパティ
sandbox_id
returncode
runner_id
status
status_updated_at
started_at
runner_group_id
service_urls
service_endpoints
service_addresses
containers
container_statuses
status はプライマリ所有のままです。
dns_egress_names
status.effective_egress からエコーバックされます。
effective_runtime_class
attached_volume_ids
effective_egress
status.effective_egress から反映された有効な外向き通信ルール。
effective_ingress
status.effective_ingress から返される有効なイングレスルールです。
exposed_ports
(container_port, name) ペアを公開します。
resource_limits
resource_requests
resource_gpu
file_system_snapshot_id
stop(snapshot_on_stop=True) によって生成されたスナップショットの ID。
exec_stats
メソッド
run
*args(str): オプションのコマンドと引数 (例: “echo”, “hello”, “world”) 。省略した場合は、SandboxDefaults のデフォルトコマンドを使用します。container_image(str | None): 使用するコンテナーイメージdefaults(SandboxDefaults | None): 適用する SandboxDefaults (オプション)auth(AuthConfig | None): 認証モードまたはプロバイダー。defaults.authを上書きします。request_timeout_seconds(float | None): API リクエストのタイムアウト (クライアント側)poll_retry_budget_seconds(float | None): サンドボックスのステータスをポーリングするループで、一時的なエラーを再試行する際の実時間の予算 (デフォルト: 30 秒) 。0 に設定すると再試行が無効になります。poll_rpc_timeout_seconds(float | None): ポーリング用 Get RPC の呼び出しごとのタイムアウト (デフォルト: 15 秒) 。request_timeout_seconds とは別に設定します。max_lifetime_seconds(float | None): サンドボックスの最大ライフタイム (サーバー側)tags(list[str] | None): サンドボックスに付与するタグ (オプション)profile_ids(list[str] | None): 1.x で削除されました。値を渡すとTypeErrorが送出されます。profile_names(list[str] | None): 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(dict[str, Any] | None): 1.x で削除されました。値を渡すとTypeErrorが送出されます。ports(list[dict[str, Any]] | None): 1.x で削除されました。代わりにservices=[Service(...)]を使用してください。network(NetworkOptions | dict[str, Any] | None): 拒否フラグと、作成時に指定するホスト名グラント (オプション、egress=[EgressRule(dns_name=...)]) を含むNetworkOptions(または dict) 。ポートの公開にはservices=を使用します。placement_mode(PlacementMode | str | None):PlacementModeまたは string (serverless/cks) 。placement_spillover(PlacementSpillover | str | None):PlacementSpilloverまたは string。デフォルトはstrictです。Sandbox.__init__を参照してください。services(list[Service] | tuple[Service, ...] | None): 型付きのサービスポート (Serviceのリストまたはタプル) 。volumes(list[ScratchVolumeOptions | RegisteredVolumeOptions | dict[str, Any]] | tuple[ScratchVolumeOptions | RegisteredVolumeOptions | dict[str, Any], ...] | None): スクラッチボリュームまたは登録済み Volume (ScratchVolumeOptions、RegisteredVolumeOptions、またはvolume_idを含む dict) 。runtime_class(str | None): ランタイムクラスの固定指定 (オプション。例:"gvisor") 。security_context(SecurityContext | dict[str, Any] | None): プライマリコンテナーのゲスト内権限。working_dir(str | None): プライマリコンテナーのコマンドを実行する作業ディレクトリ。object_storage_access(ObjectStorageAccess | dict[str, Any] | None): オブジェクトストレージの一時的な認証情報。file_system_snapshot(FileSystemSnapshotOptions | dict[str, Any] | None): 単一マウント用の簡易 FSS オプション (FileSystemSnapshotOptionsまたは dict) 。複数ボリューム構成ではvolumes=の使用を推奨します。max_timeout_seconds(int | None): 1.x で削除されました。request_timeout_secondsを使用してください。environment_variables(dict[str, str] | None): サンドボックスに注入する環境変数。session のデフォルトとマージされ、一致するキーは上書きされます。機密性のない設定にのみ使用してください。annotations(dict[str, str] | None): サンドボックス用の Kubernetes Pod アノテーション。session のデフォルトとマージされ、一致するキーは上書きされます。機密性のないメタデータにのみ使用してください。secrets(Sequence[Secret | dict[str, Any]] | None): 作成時に環境変数として注入するシークレット。デフォルトとマージされます (デフォルトが先に適用され、その後にこのリストが適用されます) 。data_plane_mode(DataPlaneMode | str | None): exec、ログ、ファイル操作のトランスポートポリシー。autoの場合は直接 mTLS を優先し、利用できない場合はゲートウェイにフォールバックします。containers(Sequence[Container | Mapping[str, Any]] | None): マルチコンテナー spec。位置引数の command/args、およびcontainer_image、resources、mounted_files、secrets、image_pull_credentials、environment_variables、security_context、working_dirとは同時に指定できません。このリストは、SandboxDefaults上の同名フィールドも含め、これらの単一コンテナー用フィールドを置き換えます。シークレット、env、working_dir は各Containerに指定してください。
run_from_template
template_id(str): 組織スコープのテンプレート UUID。*args(str): コマンド引数を上書きする場合に指定します (オプション)。commandを指定しなくても適用されます。単一コンテナーに対する部分的なオーバーレイには、この場合もcontainer_imageが必要です。command(str | None): コマンドを上書きする場合に指定します (オプション)。containers=でリスト全体を置き換える場合を除き、container_imageが必要です。defaults(SandboxDefaults | None): SandboxDefaults (オプション)。**kwargs(Any):run()と同じ、作成時の高度な kwargs。container_imageを渡すと、テンプレートのコンテナー全体 (command、args、env、files、resources、名main) が置き換えられます。既存の設定を取得してマージする処理は行われません。containers=はリスト全体を置き換えるため、container_imageは不要です。その他のコンテナーフィールドのオーバーレイ (command、args、environment_variables、secrets、resources、mounted_files、volumes、file_system_snapshot、image_pull_credentials、security_context、working_dir) には、containers=でリストを置き換える場合を除き、container_imageが必要です。これは、API がコンテナーリスト全体を置き換え、部分的なパッチを拒否するためです。セッションおよびデフォルトのタグはマージされたうえで、指定時に置き換える上書きとして送信されます。これにより、list()/adoptでサンドボックスを検索できます。環境変数とアノテーションはテンプレート側で管理されるため、マージされません。
Sandbox: サンドボックスハンドル (遅延起動)。
run_from_file
contents を生のバイト列として読み取り、
YAML の正規化は行いません。同じ request_id でバイト列が異なる場合
(空白のみの編集を含む) は CWSANDBOX_REQUEST_ID_CONFLICT になります。
バックエンドがリクエストを受け入れるとすぐに制御を返します。RUNNING になるまで待機するには wait() を使用してください。
PREPARING を待機しないでください。
GetSandbox が返すのは変換後の spec であり、ソースファイルではありません。Compose の
build: が残っている場合は CWSANDBOX_NOT_IMPLEMENTED になります。ビルドをスキップするには、
YAML で image: を設定するか、image_overrides を使用してください。
パラメーター
contents(str | Path | bytes): Compose ファイルパス (str/Path) または生の YAML バイト列。strは常にパスとして開かれます。Compose のテキストを渡す場合はbytes(.encode("utf-8")) にしてください。上限は 256 KiB です。バイト列はそのまま送信されます。primary_service(str): サンドボックスのプライマリとなる Compose サービス。file_type(SandboxFileType | str): ドキュメントのタイプ。デフォルトはcomposeです。image_overrides(Mapping[str, str] | None): サービスごとのプル可能なイメージの ref。キーはcontents内に存在するサービスである必要があります。default_resources(ResourceOptions | dict[str, Any] | None):deploy.resourcesが省略された各サービスにコピーされる CPU/メモリ。コンテナーごとの値であり、project の予算ではありません。GPU はローカルで拒否されます (ゲートウェイでも拒否されます)。defaults(SandboxDefaults | None): オプションのSandboxDefaults。タグ、ネットワーク、placement_mode、runner_ids、アノテーション、オブジェクトストレージへのアクセス、最大有効期間が継承されます。コンテナー/ボリューム/サービスのデフォルトは継承されません。defaults で指定された非 strict のplacement_spilloverは無視されます (from-file は常に strict です)。キーワード引数で非 strict を明示的に指定すると例外が送出されます。request_id(str | None): オプションのべき等性トークン。省略すると自動生成されます。**kwargs(Any): 拒否されます。この RPC は、ボリューム、パブリッシュされたサービス、runtime_class、image_pull_credentials、network_ids、build_contextsを受け入れません。
Sandbox: サンドボックスハンドル (作成リクエストは受け入れ済みですが、まだ起動中の場合があります)。
session
- デフォルトによる設定の共有
- 孤立したサンドボックスの自動クリーンアップ
- @session.function() デコレーターによる関数の実行 パラメーター
-
defaults(SandboxDefaults | Mapping[str, Any] | None): セッション経由で作成されるサンドボックスに適用するデフォルト (オプション) -
auth(AuthConfig | None): 認証方式、解決済みのヘッダー、またはプロバイダー。指定した場合はdefaults.authを上書きします。
Session: Session インスタンス
list
show_terminated=True を設定すると、終了状態の
サンドボックス (完了、失敗、終了) を含むように検索を拡大します。
ターミナルステータスのフィルター (例: status="completed") も、
検索を自動的に拡大します。
パラメーター
tags(list[str] | None): タグでフィルター (サンドボックスは指定されたすべてのタグを持つ必要があります)status(str | None): ステータスでフィルター (“running”、“completed”、“failed” など)profile_ids(list[str] | None): 1.x で削除されました。値を渡すとTypeErrorが送出されます。profile_names(list[str] | None): 1.x で削除されました。値を渡すとTypeErrorが送出されます。runner_ids(list[str] | None): ランナー ID でフィルターvolume_ids(list[str] | tuple[str, ...] | None): これらの登録済み Volume ID に関連付けられたサンドボックスにフィルターshow_terminated(bool): True の場合、終了状態のサンドボックス (完了、失敗、終了) を含めます。デフォルトは False です。base_url(str | None): API URL をオーバーライドします (デフォルト: CWSANDBOX_BASE_URL 環境変数またはデフォルト)auth(AuthConfig | None): このリクエストの認証方式、解決済みヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300 秒)poll_retry_budget_seconds(float | None): サンドボックスステータスのポーリングループで一時的なエラーを再試行するための実時間の予算 (デフォルト: 30 秒) 。再試行を無効にするには 0 に設定します。返される Sandbox インスタンスに適用されます。poll_rpc_timeout_seconds(float | None): ポーリング用 Get RPC の呼び出しごとのタイムアウト (デフォルト: 15 秒) 。timeout_secondsとは別です。返される Sandbox インスタンスに適用されます。data_plane_mode(DataPlaneMode | str): 返されるサンドボックスに適用されるトランスポートポリシー。
OperationRef[list[Sandbox]]: OperationRef[list[Sandbox]]: 結果をブロックするには .result() を使用します。OperationRef[list[Sandbox]]: または非同期コンテキストで直接 await します。
from_id
sandbox_id(str): 既存のサンドボックスの IDbase_url(str | None): API URL をオーバーライドします (デフォルト: CWSANDBOX_BASE_URL 環境変数またはデフォルト値)auth(AuthConfig | None): このリクエストに使用する認証方式、解決済みのヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300s)poll_retry_budget_seconds(float | None): サンドボックスステータスのポーリングループで一時的なエラーを再試行する際の実時間の予算 (デフォルト: 30s) 。0 に設定すると再試行が無効になります。返される Sandbox インスタンスに適用されます。poll_rpc_timeout_seconds(float | None): ポーリング用 Get RPC の呼び出しごとのタイムアウト (デフォルト: 15s) 。timeout_secondsとは別の設定です。返される Sandbox インスタンスに適用されます。data_plane_mode(DataPlaneMode | str): 返されるサンドボックスに適用されるトランスポートポリシー。
OperationRef[Sandbox]: OperationRef[Sandbox]: .result() を使用すると、ブロックして Sandbox インスタンスを取得できます。OperationRef[Sandbox]: 非同期コンテキストでは直接 await することもできます。
SandboxNotFoundError: サンドボックスが存在しない場合
delete
sandbox_id(str): 削除するサンドボックスの IDbase_url(str | None): API URL をオーバーライドします (デフォルト: CWSANDBOX_BASE_URL 環境変数またはデフォルト値)auth(AuthConfig | None): このリクエストに使用する認証方式、解決済みヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300 秒)missing_ok(bool): True の場合、サンドボックスが存在しないときに SandboxNotFoundError を抑制します。
OperationRef[None]: OperationRef[None]: 完了するまでブロックするには .result() を使用します。OperationRef[None]: 見つからない場合は SandboxNotFoundError を送出します (missing_ok=True の場合を除く)。OperationRef[None]: 削除に失敗した場合は SandboxError を送出します。
SandboxNotFoundError: サンドボックスが存在せず、missing_ok=False の場合SandboxError: その他の理由で削除に失敗した場合
get_snapshot
file_system_snapshot_id(str): 取得するスナップショットの ID。base_url(str | None): API URL をオーバーライドする (デフォルト: 環境変数 CWSANDBOX_BASE_URL、またはデフォルト値)。auth(AuthConfig | None): このリクエストに使用する認証方式、解決済みのヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300 秒)。
OperationRef[FileSystemSnapshot]: OperationRef[FileSystemSnapshot]: .result() を使用してブロックするか、await します。OperationRef[FileSystemSnapshot]: スナップショットが存在しない場合は SnapshotNotFoundError を送出します。
list_snapshots
source_sandbox_id と status のフィルターはクライアント側で適用されるため
(バックエンドの list RPC はフィルタリングを行いません)、フィルタリングの前に
すべてのスナップショットが取得されます。
パラメーター
source_sandbox_id(str | None): 指定した場合、このサンドボックスから取得されたスナップショットのみを返します。status(FileSystemSnapshotStatus | str | None): 指定した場合、このステータスのスナップショットのみを返します (FileSystemSnapshotStatus またはその string 値)。base_url(str | None): API URL をオーバーライドします (デフォルト: CWSANDBOX_BASE_URL 環境変数、またはデフォルト値)。auth(AuthConfig | None): このリクエストに使用する認証方式、解決済みヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300 秒)。
OperationRef[list[FileSystemSnapshot]]: OperationRef[list[FileSystemSnapshot]]: .result() でブロックして待機するか、await を使用します。
delete_snapshot
file_system_snapshot_id(str): 削除するスナップショットの ID。base_url(str | None): API URL をオーバーライドします (デフォルト: CWSANDBOX_BASE_URL 環境変数、またはデフォルト値)。auth(AuthConfig | None): このリクエストに使用する認証方式、解決済みヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300s)。missing_ok(bool): True の場合、スナップショットが存在しない (すでに削除されている) ときに SnapshotNotFoundError を抑制します。
OperationRef[None]: OperationRef[None]: .result() を使用して、ブロックまたは await します。OperationRef[None]: スナップショットが見つからない場合は SnapshotNotFoundError を送出します (missing_ok=True の場合を除く)。
get_snapshot_bucket_config
base_url(str | None): API URL をオーバーライドします (デフォルト: CWSANDBOX_BASE_URL 環境変数、またはデフォルト値)。auth(AuthConfig | None): このリクエストで使用する認証方式、解決済みヘッダー、またはプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300 秒)。
OperationRef[FileSystemSnapshotBucketConfig]: OperationRef[FileSystemSnapshotBucketConfig]: .result() または await を使用して結果を取得します。
set_snapshot_bucket_config
bucket_name を指定して独自のバケットを使用します。空文字列を渡すと CoreWeave 管理のバケットに戻ります。これは管理者限定の操作です。
パラメーター
bucket_name(str): スナップショットをアーカイブする先のバケット。空文字列は CoreWeave 管理のバケットに戻します。region(str): バケットのリージョン (一部のプロバイダーで BYO バケットに必要)。base_url(str | None): オーバーライドする API URL (デフォルト: CWSANDBOX_BASE_URL 環境変数またはデフォルト)。auth(AuthConfig | None): 認証方式、解決済みヘッダー、またはこのリクエストのプロバイダー。timeout_seconds(float | None): リクエストのタイムアウト (デフォルト: 300s)。
OperationRef[FileSystemSnapshotBucketConfig]: OperationRef[FileSystemSnapshotBucketConfig]: 更新された設定。
get_status
SandboxStatus: SandboxStatus 列挙値
SandboxNotRunningError: サンドボックスが開始されていない場合
start
OperationRef[None]: OperationRef[None]: バックエンドが受け入れるまでブロックするには、.result() を使用します。
wait
timeout(float | None): 待機する最大秒数。None の場合はデフォルトのタイムアウトを使用します。
Sandbox: メソッドチェーン用の Self。最終的な状態を判断するには .status を確認してください。
SandboxFailedError: サンドボックスの起動に失敗した場合SandboxTerminatedError: サンドボックスが外部から終了された場合SandboxTimeoutError: タイムアウト時間が経過した場合
wait_until_complete
returncode が利用可能になります (None のままになるケースについては returncode プロパティを参照してください)。
パラメーター
timeout(float | None): 待機する最大秒数。None の場合はデフォルトのタイムアウトを使用します。raise_on_termination(bool): True (デフォルト) の場合、このクライアントが stop() を呼び出したか、バックエンドがレガシーな TERMINATED ステータスを report したときに SandboxTerminatedError が送出されます。COMPLETED となる外部からの強制終了 (インフラストラクチャー、有効期間の制限、他のクライアント) は、バックエンドが termination_reason メタデータを提供するまで検出できません。SandboxTerminatedError を完全に抑制するには False に設定します。
OperationRef[Sandbox]: OperationRef[Sandbox]: ブロックするか、非同期コンテキストで await するには.result()を使用します。
SandboxTimeoutError: タイムアウトの期限が切れた場合SandboxTerminatedError: サンドボックスがこのクライアントによって停止されたか、バックエンドによって TERMINATED として report された場合 (かつ raise_on_termination=True の場合)SandboxFailedError: サンドボックスが失敗した場合
poll_retry_budget_seconds は、ユーザーの timeout パラメーター内にある厳密なサブタイムアウトです。30秒の再試行予算と300秒のユーザータイムアウトを設定した場合、30秒付近で予算枯渇エラーが発生する可能性があります。より長い再試行を希望する呼び出し元は、それに応じて poll_retry_budget_seconds を設定する必要があります。
サンプル
stop
stop() がすでに実行中であるという理由で、スナップショットを取得しない停止に参加 (または監視) することになる snapshot_on_stop=True リクエストは、アーカイブなしで暗黙のうちに完了するのではなく、SnapshotOnStopConflictError を送出します。通常の停止は常に結合されます。
サンドボックスはもはや使用できないため、停止が成功したかどうかに関係なく、セッションから登録解除されます。
パラメーター
snapshot_on_stop(bool): True の場合、シャットダウン前に、設定されたマウントのファイルシステムスナップショット (FSS) を取得します。結果のスナップショット ID は、返された OperationRef が解決された後、file_system_snapshot_idプロパティを介して利用できます。サンドボックスがfile_system_snapshotマウントで開始されており、組織で FSS が有効になっている必要があります。スナップショットを取得しない停止がすでに進行中の場合、SnapshotOnStopConflictErrorが送出されます。graceful_shutdown_seconds(float): 正常なシャットダウンを待機する時間です。snapshot_on_stop=Trueの場合、これはアーカイブ後の Pod 削除の猶予期間であり、スナップショットの完了後に適用されます。そのため、クライアントの期限はアーカイブの予算とこの猶予期間をカバーします。v1 では、grace_period_seconds=0は即時終了を意味します (バックエンドの猶予期間の代替はありません)。バックエンドは、snapshot-on-stop の場合、これを 300 秒に制限します。missing_ok(bool): True の場合、サンドボックスが存在しないときに SandboxNotFoundError を抑制します。snapshot_on_stop=Trueの場合、フラグは引き続きallow_missingとして送信されます。サンドボックスが見つからない場合、またはサーバーがその組み合わせを拒否した場合、アーカイブなしで成功するのではなく、SnapshotOnStopConflictErrorが送出されます。wait_for_ready(bool):snapshot_on_stopが True の場合、停止が完了する前に、スナップショットが READY (または FAILED) に到達するまでブロックします。snapshot_on_stopが False の場合は無視されます。request_id(str | None): 再試行時に snapshot-on-stop リクエストを重複排除するための、オプションのクライアント提供キーです。snapshot_on_stopが False の場合は無視されます。
OperationRef[None]: OperationRef[None]: 終端状態になるまでブロックするには .result() を使用します。OperationRef[None]: 失敗した場合は SandboxError が、見つからない場合は SandboxNotFoundError が送出されます。OperationRef[None]: (missing_ok=True の場合を除く)。
snapshot
file_system_snapshot を介して設定されたディレクトリのスナップショットを作成します。サンドボックスがまだ開始されていない場合は、最初にサンドボックスを開始します。Sandbox.run(file_system_snapshot=FileSystemSnapshotOptions(..., file_system_snapshot_id=<id>)) を使用して、スナップショットを新しいサンドボックスにリストアします。
サンドボックスが file_system_snapshot
マウントで開始されており、組織で FSS が有効になっている必要があります。
パラメーター
wait_for_ready(bool): スナップショットが READY (または FAILED) に達するまでブロックしてから戻ります。False の場合、スナップショットが作成されると (おそらくまだ CREATING の状態) 戻ります。request_id(str | None): 再試行時にリクエストを重複排除するための、クライアントが提供するオプションのキー。
OperationRef[str]: OperationRef[str]:.result()を使用してブロック (または待機) し、新しいOperationRef[str]: スナップショットの ID を取得します。完全なレコードOperationRef[str]: (ステータス、サイズ、タイムスタンプ) を取得するには、Sandbox.get_snapshot(id)を呼び出します。
SandboxSnapshotError: スナップショットが失敗した場合 (組織で有効になっていない場合のNOT_SUPPORTED、クォータ/サイズなどについては、サブクラスを参照してください)。
exec
command(Sequence[str]): 実行するコマンドと引数cwd(str | None): コマンド実行の作業ディレクトリ。絶対パスである必要があります。指定した場合、コマンドはシェルの cd でラップされます。check(bool): True の場合、ゼロ以外のリターンコードで SandboxExecutionError を送出します。timeout_seconds(float | None): コマンド実行のタイムアウト (サンドボックスが RUNNING になった後) 。サンドボックスが RUNNING ステータスになるまでの待機時間は含まれません。stdin(bool): True の場合、stdin ストリーミングを有効にします。Process.stdin は、コマンドに入力を送信できる StreamWriter になります。False (デフォルト) の場合、stdin はすぐに閉じられ、Process.stdin は None になります。container(str | None): exec を実行するコンテナー名。空または None の場合はプライマリをターゲットにします。
Process: ストリーミング stdout/stderr を持つ Process ハンドル。.result() を呼び出してブロックし、Process: 最終的な ProcessResult を取得するか、.stdout/.stderr を反復処理してProcess: リアルタイムの出力を取得します。stdin=True の場合、Process.stdin は StreamWriter になります。
ValueError: コマンドが空の場合、または cwd が無効 (空または相対パス) な場合
shell
command(Sequence[str] | None): 実行するシェルコマンド。デフォルトは [“/bin/bash”] です。[“/bin/sh”] や [“/usr/bin/python3”] のようなシーケンスを受け入れます。width(int | None): 初期ターミナル幅 (列数)。height(int | None): 初期ターミナルの高さ (行数)。container(str | None): TTY セッションのコンテナー名。空または None の場合はプライマリをターゲットにします。
TerminalSession: .output (StreamReader[bytes]) を持つ TerminalSession ハンドル、TerminalSession: .stdin (StreamWriter)、および .resize(w, h)。
ValueError: command が明示的に空の場合。
read_file
filepath(str): サンドボックス内のファイルへのパスtimeout_seconds(float | None): 操作のタイムアウトcontainer(str | None): 読み取り元のコンテナー。空または None の場合はプライマリを対象とします。
OperationRef[bytes]: OperationRef[bytes]: .result() を使用すると、ブロックして内容を取得します。
CWSANDBOX_FILE_TOO_LARGE で拒否されます。そのようなファイルには read_file_streaming を使用してください。どの経路でも、結果全体がメモリに保持されます。クライアントはリモートのサイズを常に事前に把握できるわけではありません (例: バックエンドがサイズ付きの CWSANDBOX_FILE_TOO_LARGE ではなくリソース枯渇によって過大な読み取りを通知する場合) 。そのため、非常に大きなファイルでも拒否されずに全体がバッファされることがあります。大きなファイルには read_file_streaming を使用して段階的に読み込み、メモリ使用量を抑えることを推奨します。
送出される例外
SandboxFileError: ファイルがサーバーの上限を超え、かつサーバーがそのサイズを報告した場合はreason == CWSANDBOX_FILE_TOO_LARGEで、ストリーミング読み取りの結果がファイルのサイズに満たない場合 (読み取り前のサイズと照合して切り詰めを検出) はreason == CWSANDBOX_FILE_TRUNCATEDで送出されます。SandboxStreamBackpressureError: 大きな読み取りがストリーミングにフォールバックし、クライアントの読み取りよりも速く出力が生成された場合に送出されます (SandboxExecutionError のサブクラス) 。
write_file
filepath(str): サンドボックス内のファイルのパスcontents(bytes): ファイルの内容 (バイト列)timeout_seconds(float | None): 操作のタイムアウトcontainer(str | None): 書き込み先のコンテナー。空または None の場合はプライマリが対象になります。
OperationRef[None]: OperationRef[None]: 完了するまでブロックするには .result() を使用します。
write_file_streaming を使用してください。
送出される例外
SandboxFileError: ペイロードがサーバーの上限を超えた場合は、reason == CWSANDBOX_FILE_TOO_LARGE付きで送出されます。また、ストリーミング書き込みが途中で失敗し、不完全なファイルが残っている可能性がある場合にも (この reason なしで) 送出されます。SandboxStreamBackpressureError: 大きな書き込みがストリーミングにフォールバックした際に、ソースのデータ生成速度が送信速度を上回った場合に送出されます (SandboxExecutionError のサブクラス)。
write_file_streaming
write_file ではなくこちらを使用してください。
パラメーター
filepath(str): サンドボックス内の絶対パス。source(bytes | Iterable[bytes] | AsyncIterable[bytes]):bytes、同期のIterable[bytes]、またはAsyncIterable[bytes]形式のペイロード。入力は送信前に、フレームに収まるサイズのチャンクに分割されます。yield される項目はbytes、bytearray、またはmemoryviewである必要があります。それ以外の型の場合はTypeErrorが送出されます。timeout_seconds(float | None): ストリーミング書き込みの実時間タイムアウト。
OperationRef[None]:OperationRef[None]:.result()を呼び出すと、完了するまでブロックします。
SandboxStreamBackpressureError: ソースのデータ生成速度が送信速度を上回り、ストリームが途中で終了した場合。ペースを制御できるソースから yield するか、大きなアップロードを事前にチャンク分割してください。詳しくはこの例外の docstring を参照してください。
open(...) で取得したファイルハンドル) はワーカースレッド上で読み取られるため、read がブロッキングしても SDK のイベントループは停止しません。非同期ソースは直接 await されます。どちらを使用しても問題ないため、データに合わせて扱いやすい方を選択してください。
read_file_streaming
read_file よりもこちらを使用してください。
大きなファイルの場合、SDK は読み取り前にファイルのサイズを取得し、
ストリームの終了後に、少なくともそのバイト数が
配信されたことを検証します。配信されたバイト数がそれより少ない場合、イテレーターは理由
CWSANDBOX_FILE_TRUNCATED を伴う SandboxFileError を送出します。これにより呼び出し元は、
不完全なファイルをそのまま処理することなく、暗黙的な読み取り不足を検出できます。 (読み取り前の
サイズを基準にするため、読み取り中に追記されたファイルが切り詰めと
誤認されることはありません。) このチェックは、暗黙的な切り詰めが発生しない小さなファイルではスキップされます。
また、サイズを判定できない場合はベストエフォートで実行されます。
ループでのチャンクの読み取りがファイルのストリーミングより遅い場合 (たとえば
反復処理の合間に時間のかかる処理を行う場合) 、読み取りが
SandboxStreamBackpressureError で途中で終了することがあります。反復処理は速やかに行い、時間のかかる処理は
読み取りループの外に移してください。詳しくは、この例外の docstring を参照してください。
パラメーター
filepath(str): サンドボックス内の絶対パス。timeout_seconds(float | None): ストリーミング読み取りの実時間タイムアウト。
StreamReader[bytes]: チャンクを順番に生成するStreamReader[bytes]。ファイルの終端はStreamReader[bytes]: イテレーターが通常どおり終了することで通知されます。エラー (ファイルが存在しない、StreamReader[bytes]: アクセス拒否、切り詰め、読み取りが遅すぎる) は、StreamReader[bytes]: コンシューマーがその位置を越えて反復処理した時点で再送出されます。
close() を呼び出してください。SDK はガベージコレクション時にバックグラウンドタスクをキャンセルするファイナライザーを登録しますが、明示的にクローズしたほうがリソースを早く解放できます。バーストを平滑化してバックプレッシャーをかけるため、ループに先行して一定量の出力がバッファされますが、これはメモリ使用量の厳密な上限ではありません。ループの処理が遅れるほど、常駐メモリは増加します。読み取りループは軽量に保ち、チャンクごとの時間のかかる処理はループの外に移してください (examples/large_file_streaming.py を参照)。
stream_logs
Sandbox.run() に渡されたエントリポイント、またはデフォルトのシェルでトラップされた
キープアライブ) の stdout/stderr をストリーミングします。exec() で開始したコマンドの出力は
含まれません。それらの出力には Process.stdout/Process.stderr を使用してください。
.. note::
デフォルトのキープアライブコマンドで作成されたサンドボックスは、
ログを出力しません。ここでログを確認するには、Sandbox.run() を呼び出す際に
stdout/stderr に書き込むコマンドを渡してください。
ログ行を strings として yield する StreamReader を返します。このメソッドは
即座に制御を返します。StreamReader の反復処理は、データが到着するまで
ブロックされます。
パラメーター
follow(bool): True の場合、新しいログを継続的にストリーミングします (tail -fと同様) 。False の場合、実行中のサンドボックスから既存のログをストリーミングして終了します。停止したサンドボックスはStreamLogsを拒否します。tail_lines(int | None): 取得する最新の行数。None の場合、利用可能なすべての行を返します。since_time(datetime | None): このタイムスタンプ以降のログのみを返します。タイムゾーン情報を持つ必要があり、naive な datetime を指定するとValueErrorが送出されます。timestamps(bool): True の場合、各行の先頭にサーバーからの ISO 8601 タイムスタンプを付加します。timeout_seconds(float | None): gRPC 呼び出しのクライアント側の期限。デフォルトは、follow=Falseの場合はrequest_timeout_seconds、follow=Trueの場合はNone(タイムアウトなし) です。container(str | None): ログをストリーミングするコンテナー。空または None の場合はプライマリコンテナーが対象になります。
StreamReader[str]: ログ行を strings として yield する StreamReader。同期的に反復処理するにはStreamReader[str]:for line in readerを、非同期に反復処理するにはStreamReader[str]:async for line in readerを使用します。
SandboxNotRunningError:follow=Trueで、サンドボックスが停止している場合。SandboxError: ログストリームでエラーが発生した場合。