スナップショット
class Snapshot(SnapshotDto)事前に構成されたサンドボックスである Daytona のスナップショットを表します。
属性:
idStrictStr - スナップショットの一意の識別子。organization_idOptional[StrictStr] - スナップショットの組織ID。generalOptional[bool] - スナップショットが汎用かどうか。nameStrictStr - スナップショット名。image_nameStrictStr - スナップショットのイメージ名。stateStrictStr - スナップショットの状態。sizeOptional[Union[StrictFloat, StrictInt]] - スナップショットのサイズ。entrypointOptional[List[str]] - スナップショットのエントリポイント。cpuUnion[StrictFloat, StrictInt] - スナップショットの CPU。gpuUnion[StrictFloat, StrictInt] - スナップショットの GPU。memUnion[StrictFloat, StrictInt] - スナップショットのメモリ(GiB)。diskUnion[StrictFloat, StrictInt] - スナップショットのディスク(GiB)。error_reasonOptional[StrictStr] - スナップショットのエラー理由。created_atStrictStr - スナップショットの作成時刻。updated_atStrictStr - スナップショットの最終更新時刻。last_used_atStrictStr - スナップショットの最終使用時刻。
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:
snapshotSnapshot - 削除するスナップショット。
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:
namestr - 取得するスナップショットの名前。
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:
paramsCreateSnapshotParams - スナップショット作成用のパラメータ。on_logsCallable[[str], None] - スナップショット作成時のログを処理するコールバック関数。timeoutOptional[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:
snapshotSnapshot - 対象のスナップショットインスタンス。
Returns:
Snapshot- アクティブ化されたスナップショットインスタンス。
SnapshotService.process_image_context
@staticmethoddef process_image_context(object_storage_api: ObjectStorageApi, image: Image) -> List[str]イメージのコンテキストをオブジェクトストレージにアップロードして処理します。
Arguments:
imageImage - Imageインスタンス。
Returns:
List[str]- オブジェクトストレージに保存されたコンテキストハッシュのリスト。
CreateSnapshotParams
class CreateSnapshotParams(BaseModel)新規スナップショット作成用のパラメータ。
属性:
nameOptional[str] - スナップショット名。imageUnion[str, Image] - スナップショットのイメージ。文字列が指定された場合は、 いずれかのレジストリで利用可能である必要があります。Image インスタンスが指定された場合は、 Daytona で新しいイメージを作成するために使用されます。resourcesOptional[Resources] - スナップショットのリソース。entrypointOptional[List[str]] - スナップショットのエントリポイント。