スナップショット
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 - スナップショットの最終使用時刻。
AsyncSnapshotService
class AsyncSnapshotService()
Daytonaのスナップショット(スナップショット(リソースや依存関係を含む再利用可能なイメージ/テンプレート))を管理するサービス。スナップショットの一覧、取得、作成、削除に使用できます。
AsyncSnapshotService.list
@intercept_errors(message_prefix="Failed to list snapshots: ")async def list() -> List[Snapshot]
すべてのスナップショットを一覧します。
戻り値:
List[Snapshot]
- すべてのスナップショットのリスト。
例:
async with AsyncDaytona() as daytona: snapshots = await daytona.snapshot.list() for snapshot in snapshots: print(f"{snapshot.name} ({snapshot.image_name})")
AsyncSnapshotService.delete
@intercept_errors(message_prefix="Failed to delete snapshot: ")async def delete(snapshot: Snapshot) -> None
スナップショットを削除します。
引数:
snapshot
Snapshot - 削除するスナップショット。
例:
async with AsyncDaytona() as daytona: snapshot = await daytona.snapshot.get("test-snapshot") await daytona.snapshot.delete(snapshot) print("Snapshot deleted")
AsyncSnapshotService.get
@intercept_errors(message_prefix="Failed to get snapshot: ")async def get(name: str) -> Snapshot
名前を指定してスナップショットを取得します。
引数:
name
str - 取得するスナップショット名。
戻り値:
Snapshot
- 取得したスナップショット。
例:
async with AsyncDaytona() as daytona: snapshot = await daytona.snapshot.get("test-snapshot-name") print(f"{snapshot.name} ({snapshot.image_name})")
AsyncSnapshotService.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."))async def create(params: CreateSnapshotParams, *, on_logs: Callable[[str], None] = None, timeout: Optional[float] = 0) -> Snapshot
指定されたImage定義から新しいスナップショットを作成し、登録します。
引数:
params
CreateSnapshotParams - スナップショット作成用パラメータ。on_logs
Callable[[str], None] - スナップショット作成時のログを処理するコールバック関数。timeout
Optional[float] - 既定ではタイムアウトなし。秒数で指定(0はタイムアウトなし)。
例:
image = Image.debianSlim('3.12').pipInstall('numpy')daytona.snapshot.create( CreateSnapshotParams(name='my-snapshot', image=image), on_logs=lambda chunk: print(chunk, end=""),)
AsyncSnapshotService.activate
async def activate(snapshot: Snapshot) -> Snapshot
スナップショットをアクティブ化します。
引数:
snapshot
Snapshot - 対象のスナップショットインスタンス。
戻り値:
Snapshot
- アクティブ化されたスナップショットインスタンス。
AsyncSnapshotService.process_image_context
@staticmethodasync def process_image_context(object_storage_api: ObjectStorageApi, image: Image) -> List[str]
イメージのコンテキストをオブジェクトストレージにアップロードして処理します。
引数:
image
Image - 対象のImageインスタンス。
戻り値:
List[str]
- オブジェクトストレージに保存されたコンテキストハッシュのリスト。
CreateSnapshotParams
class CreateSnapshotParams(BaseModel)
新しいスナップショットを作成するためのパラメータ。
属性:
name
Optional[str] - スナップショット名。image
Union[str, Image] - スナップショットのイメージ。文字列が指定された場合は、 いずれかのレジストリで利用可能である必要があります。Image インスタンスが指定された場合は、 Daytonaで新しいイメージを作成する際に使用されます。resources
Optional[Resources] - スナップショットのリソース。entrypoint
Optional[List[str]] - スナップショットのエントリポイント。