---
title: "AsyncSnapshot"
hideTitleOnPage: true
---

## スナップショット

```python
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

```python
class AsyncSnapshotService()
```

Daytonaのスナップショット（スナップショット（リソースや依存関係を含む再利用可能なイメージ/テンプレート））を管理するサービス。スナップショットの一覧、取得、作成、削除に使用できます。

#### AsyncSnapshotService.list

```python
@intercept_errors(message_prefix="Failed to list snapshots: ")
async def list() -> List[Snapshot]
```

すべてのスナップショットを一覧します。

**戻り値**:

- `List[Snapshot]` - すべてのスナップショットのリスト。
  

**例**:

```python
async with AsyncDaytona() as daytona:
    snapshots = await daytona.snapshot.list()
    for snapshot in snapshots:
        print(f"{snapshot.name} ({snapshot.image_name})")
```

#### AsyncSnapshotService.delete

```python
@intercept_errors(message_prefix="Failed to delete snapshot: ")
async def delete(snapshot: Snapshot) -> None
```

スナップショットを削除します。

**引数**:

- `snapshot` _Snapshot_ - 削除するスナップショット。
  

**例**:

```python
async with AsyncDaytona() as daytona:
    snapshot = await daytona.snapshot.get("test-snapshot")
    await daytona.snapshot.delete(snapshot)
    print("Snapshot deleted")
```

#### AsyncSnapshotService.get

```python
@intercept_errors(message_prefix="Failed to get snapshot: ")
async def get(name: str) -> Snapshot
```

名前を指定してスナップショットを取得します。

**引数**:

- `name` _str_ - 取得するスナップショット名。
  

**戻り値**:

- `Snapshot` - 取得したスナップショット。
  

**例**:

```python
async with AsyncDaytona() as daytona:
    snapshot = await daytona.snapshot.get("test-snapshot-name")
    print(f"{snapshot.name} ({snapshot.image_name})")
```

#### AsyncSnapshotService.create

```python
@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はタイムアウトなし）。

**例**:

```python
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

```python
async def activate(snapshot: Snapshot) -> Snapshot
```

スナップショットをアクティブ化します。

**引数**:

- `snapshot` _Snapshot_ - 対象のスナップショットインスタンス。

**戻り値**:

- `Snapshot` - アクティブ化されたスナップショットインスタンス。

#### AsyncSnapshotService.process\_image\_context

```python
@staticmethod
async def process_image_context(object_storage_api: ObjectStorageApi,
                                image: Image) -> List[str]
```

イメージのコンテキストをオブジェクトストレージにアップロードして処理します。

**引数**:

- `image` _Image_ - 対象のImageインスタンス。

**戻り値**:

- `List[str]` - オブジェクトストレージに保存されたコンテキストハッシュのリスト。

## CreateSnapshotParams

```python
class CreateSnapshotParams(BaseModel)
```

新しいスナップショットを作成するためのパラメータ。

**属性**:

- `name` _Optional[str]_ - スナップショット名。
- `image` _Union[str, Image]_ - スナップショットのイメージ。文字列が指定された場合は、
  いずれかのレジストリで利用可能である必要があります。Image インスタンスが指定された場合は、
  Daytonaで新しいイメージを作成する際に使用されます。
- `resources` _Optional[Resources]_ - スナップショットのリソース。
- `entrypoint` _Optional[List[str]]_ - スナップショットのエントリポイント。

