コンテンツにスキップ

スナップショット

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

@staticmethod
def 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]] - スナップショットのエントリポイント。