スナップショット
class Snapshot(SnapshotDto)
事前に構成されたサンドボックスである Daytona のスナップショットを表します。
属性:
id
StrictStr - スナップショットの一意の識別子。organization_id
Optional[StrictStr] - スナップショットの組織ID。general
Optional[bool] - スナップショットが汎用かどうか。name
StrictStr - スナップショット名。image_name
StrictStr - スナップショットのイメージ名。state
StrictStr - スナップショットの状態。size
Optional[Union[StrictFloat, StrictInt]] - スナップショットのサイズ。entrypoint
Optional[List[str]] - スナップショットのエントリポイント。cpu
Union[StrictFloat, StrictInt] - スナップショットの CPU。gpu
Union[StrictFloat, StrictInt] - スナップショットの GPU。mem
Union[StrictFloat, StrictInt] - スナップショットのメモリ(GiB)。disk
Union[StrictFloat, StrictInt] - スナップショットのディスク(GiB)。error_reason
Optional[StrictStr] - スナップショットのエラー理由。created_at
StrictStr - スナップショットの作成時刻。updated_at
StrictStr - スナップショットの最終更新時刻。last_used_at
StrictStr - スナップショットの最終使用時刻。
SnapshotService
class SnapshotService()
Daytonaのスナップショットを管理するサービス。スナップショットの一覧、取得、作成、削除に使用できます。
SnapshotService.list
@intercept_errors(message_prefix="Failed to list snapshots: ")def list() -> List[Snapshot]
すべてのスナップショットを一覧します。
Returns:
List[Snapshot]
- すべてのスナップショットのリスト。
Example:
daytona = Daytona()snapshots = daytona.snapshot.list()for snapshot in snapshots: print(f"{snapshot.name} ({snapshot.image_name})")
SnapshotService.delete
@intercept_errors(message_prefix="Failed to delete snapshot: ")def delete(snapshot: Snapshot) -> None
スナップショットを削除します。
Arguments:
snapshot
Snapshot - 削除するスナップショット。
Example:
daytona = Daytona()snapshot = daytona.snapshot.get("test-snapshot")daytona.snapshot.delete(snapshot)print("Snapshot deleted")
SnapshotService.get
@intercept_errors(message_prefix="Failed to get snapshot: ")def get(name: str) -> Snapshot
名前でスナップショットを取得します。
Arguments:
name
str - 取得するスナップショットの名前。
Returns:
Snapshot
- 取得したスナップショットオブジェクト。
Example:
daytona = Daytona()snapshot = daytona.snapshot.get("test-snapshot-name")print(f"{snapshot.name} ({snapshot.image_name})")
SnapshotService.create
@intercept_errors(message_prefix="Failed to create snapshot: ")@with_timeout(error_message=lambda self, timeout: ( f"Failed to create snapshot within {timeout} seconds timeout period."))def create(params: CreateSnapshotParams, *, on_logs: Callable[[str], None] = None, timeout: Optional[float] = 0) -> Snapshot
指定されたImage定義から新しいスナップショットを作成し、登録します。
Arguments:
params
CreateSnapshotParams - スナップショット作成用のパラメータ。on_logs
Callable[[str], None] - スナップショット作成時のログを処理するコールバック関数。timeout
Optional[float] - 既定ではタイムアウトなし。タイムアウト秒数(0は無制限)。
Example:
image = Image.debianSlim('3.12').pipInstall('numpy')daytona.snapshot.create( CreateSnapshotParams(name='my-snapshot', image=image), on_logs=lambda chunk: print(chunk, end=""),)
SnapshotService.activate
def activate(snapshot: Snapshot) -> Snapshot
スナップショットをアクティブ化します。
Arguments:
snapshot
Snapshot - 対象のスナップショットインスタンス。
Returns:
Snapshot
- アクティブ化されたスナップショットインスタンス。
SnapshotService.process_image_context
@staticmethoddef process_image_context(object_storage_api: ObjectStorageApi, image: Image) -> List[str]
イメージのコンテキストをオブジェクトストレージにアップロードして処理します。
Arguments:
image
Image - Imageインスタンス。
Returns:
List[str]
- オブジェクトストレージに保存されたコンテキストハッシュのリスト。
CreateSnapshotParams
class CreateSnapshotParams(BaseModel)
新規スナップショット作成用のパラメータ。
属性:
name
Optional[str] - スナップショット名。image
Union[str, Image] - スナップショットのイメージ。文字列が指定された場合は、 いずれかのレジストリで利用可能である必要があります。Image インスタンスが指定された場合は、 Daytona で新しいイメージを作成するために使用されます。resources
Optional[Resources] - スナップショットのリソース。entrypoint
Optional[List[str]] - スナップショットのエントリポイント。