コンテンツにスキップ

AsyncDaytona

class AsyncDaytona()

Daytona API と対話するためのメインクラス。

このクラスは、Daytona サンドボックスの作成・管理・操作を非同期メソッドで提供します。 明示的な設定、または環境変数を用いて初期化できます。

属性:

  • volume AsyncVolumeService - ボリュームを管理するサービス。
  • snapshot AsyncSnapshotService - スナップショットを管理するサービス。

:

環境変数を使用する場合:

async with AsyncDaytona() as daytona: # Uses DAYTONA_API_KEY, DAYTONA_API_URL
sandbox = await daytona.create()

明示的な設定を使用する場合:

config = DaytonaConfig(
api_key="your-api-key",
api_url="https://your-api.com",
target="us"
)
try:
daytona = AsyncDaytona(config)
sandbox = await daytona.create()
finally:
await daytona.close()

AsyncDaytona.init

def __init__(config: Optional[DaytonaConfig] = None)

任意の設定で Daytona インスタンスを初期化します。

config が指定されていない場合、次の環境変数から読み取ります:

  • DAYTONA_API_KEY: 認証に必要な API キー(必須)
  • DAYTONA_API_URL: API の URL(必須)
  • DAYTONA_TARGET: ターゲット環境(任意、デフォルトは ‘us’)

引数:

  • config Optional[DaytonaConfig] - api_key、api_url、target を含むオブジェクト。

送出:

  • DaytonaError - API キーが config または環境変数で提供されていない場合

:

from daytona import Daytona, DaytonaConfig
# 環境変数を使用
daytona1 = AsyncDaytona()
await daytona1.close()
# 明示的な設定を使用
config = DaytonaConfig(
api_key="your-api-key",
api_url="https://your-api.com",
target="us"
)
daytona2 = AsyncDaytona(config)
await daytona2.close()

AsyncDaytona.aenter

async def __aenter__()

非同期コンテキストマネージャへのエントリ。

AsyncDaytona.aexit

async def __aexit__(exc_type, exc_value, traceback)

非同期コンテキストマネージャの終了—適切なクリーンアップを保証します。

AsyncDaytona.close

async def close()

HTTP セッションを閉じてリソースをクリーンアップします。

このメソッドは AsyncDaytona インスタンスの使用を終えたときに呼び出し、 基盤となる HTTP セッションを適切に閉じてリソースリークを防ぎます。

:

daytona = AsyncDaytona()
try:
sandbox = await daytona.create()
# ... use sandbox ...
finally:
await daytona.close()

あるいは、非同期コンテキストマネージャとして使用するのが望ましいです:

async with AsyncDaytona() as daytona:
sandbox = await daytona.create()
# ... use sandbox ...
# 自動的にクローズされます

AsyncDaytona.create

@overload
async def create(params: Optional[CreateSandboxFromSnapshotParams] = None,
*,
timeout: Optional[float] = 60) -> AsyncSandbox

指定された、またはデフォルトのスナップショットからサンドボックスを作成します。言語、イメージ、環境変数、ボリュームなど、さまざまなパラメータを指定できます。

引数:

  • params Optional[CreateSandboxFromSnapshotParams] - サンドボックス作成用のパラメータ。指定しない場合は、 デフォルトの Daytona スナップショットと Python 言語が使用されます。
  • timeout Optional[float] - サンドボックス作成のタイムアウト(秒)。0 はタイムアウトなしを意味します。 デフォルトは 60 秒です。

戻り値:

  • Sandbox - 作成されたサンドボックスインスタンス。

送出:

  • DaytonaError - timeout、auto_stop_interval、または auto_archive_interval が負の場合、 またはサンドボックスの起動に失敗した/タイムアウトした場合

:

デフォルトの Python サンドボックスを作成:

sandbox = await daytona.create()

カスタムサンドボックスを作成:

params = CreateSandboxFromSnapshotParams(
language="python",
snapshot="my-snapshot-id",
env_vars={"DEBUG": "true"},
auto_stop_interval=0,
auto_archive_interval=60,
auto_delete_interval=120
)
sandbox = await daytona.create(params, timeout=40)

AsyncDaytona.create

@overload
async def create(
params: Optional[CreateSandboxFromImageParams] = None,
*,
timeout: Optional[float] = 60,
on_snapshot_create_logs: Callable[[str], None] = None) -> AsyncSandbox

指定したレジストリで利用可能なイメージ、または宣言的な Daytona イメージからサンドボックスを作成します。 リソース、言語、イメージ、環境変数、ボリュームなど、さまざまなパラメータを指定できます。Daytona は指定されたイメージからスナップショットを作成し、それを用いてサンドボックスを作成します。

引数:

  • params Optional[CreateSandboxFromImageParams] - イメージからサンドボックスを作成するためのパラメータ。
  • timeout Optional[float] - サンドボックス作成のタイムアウト(秒)。0 はタイムアウトなしを意味します。 デフォルトは 60 秒です。
  • on_snapshot_create_logs Callable[[str], None] - スナップショット作成ログを処理するコールバック関数。

戻り値:

  • Sandbox - 作成されたサンドボックスインスタンス。

例外:

  • DaytonaError - timeout、auto_stop_interval、または auto_archive_interval が負の場合、 もしくはサンドボックスの起動に失敗した場合やタイムアウトした場合

:

既定の Python サンドボックスをイメージから作成:

sandbox = await daytona.create(CreateSandboxFromImageParams(image="debian:12.9"))

宣言的なイメージ定義からカスタムサンドボックスを作成:

declarative_image = (
Image.base("alpine:3.18")
.pipInstall(["numpy", "pandas"])
.env({"MY_ENV_VAR": "My Environment Variable"})
)
params = CreateSandboxFromImageParams(
language="python",
image=declarative_image,
env_vars={"DEBUG": "true"},
resources=Resources(cpu=2, memory=4),
auto_stop_interval=0,
auto_archive_interval=60,
auto_delete_interval=120
)
sandbox = await daytona.create(
params,
timeout=40,
on_snapshot_create_logs=lambda chunk: print(chunk, end=""),
)

AsyncDaytona.delete

async def delete(sandbox: AsyncSandbox, timeout: Optional[float] = 60) -> None

サンドボックスを削除します。

引数:

  • sandbox Sandbox - 削除するサンドボックスインスタンス。
  • timeout Optional[float] - サンドボックス削除のタイムアウト(秒)。0 はタイムアウトなしを意味します。 デフォルトは 60 秒です。

例外:

  • DaytonaError - サンドボックスの削除に失敗した場合、またはタイムアウトした場合

:

sandbox = await daytona.create()
# ... use sandbox ...
await daytona.delete(sandbox) # 完了時にクリーンアップ

AsyncDaytona.get

@intercept_errors(message_prefix="Failed to get sandbox: ")
async def get(sandbox_id: str) -> AsyncSandbox

ID でサンドボックスを取得します。

引数:

  • sandbox_id str - 取得するサンドボックスの ID。

戻り値:

  • Sandbox - サンドボックスインスタンス。

例外:

  • DaytonaError - sandbox_id が指定されていない場合。

:

sandbox = await daytona.get("my-sandbox-id")
print(sandbox.status)

AsyncDaytona.find_one

@intercept_errors(message_prefix="Failed to find sandbox: ")
async def find_one(sandbox_id: Optional[str] = None,
labels: Optional[Dict[str, str]] = None) -> AsyncSandbox

ID またはラベルでサンドボックスを検索します。

引数:

  • sandbox_id Optional[str] - 取得するサンドボックスの ID。
  • labels Optional[Dict[str, str]] - サンドボックスをフィルタリングするためのラベル。

戻り値:

  • Sandbox - ID またはラベルに一致する最初のサンドボックス。

例外:

  • DaytonaError - サンドボックスが見つからない場合。

:

sandbox = await daytona.find_one(labels={"my-label": "my-value"})
print(f"Sandbox ID: {sandbox.id} State: {sandbox.state}")

AsyncDaytona.list

@intercept_errors(message_prefix="Failed to list sandboxes: ")
async def list(labels: Optional[Dict[str, str]] = None) -> List[AsyncSandbox]

ラベルでフィルタリングされたサンドボックスの一覧を取得します。

引数:

  • labels Optional[Dict[str, str]] - サンドボックスをフィルタリングするためのラベル。

戻り値:

  • List[Sandbox] - ラベルに一致するサンドボックスインスタンスのリスト。

:

sandboxes = await daytona.list(labels={"my-label": "my-value"})
for sandbox in sandboxes:
print(f"{sandbox.id}: {sandbox.status}")

AsyncDaytona.start

async def start(sandbox: AsyncSandbox, timeout: Optional[float] = 60) -> None

サンドボックスを起動し、準備完了になるまで待機します。

引数:

  • sandbox Sandbox - 起動するサンドボックス。
  • timeout Optional[float] - サンドボックスの起動完了を待機するタイムアウト(秒)。省略可。 0 はタイムアウトなしを意味します。デフォルトは 60 秒です。

例外:

  • DaytonaError - タイムアウトが負の値の場合、またはサンドボックスの起動に失敗した場合・タイムアウトした場合

AsyncDaytona.stop

async def stop(sandbox: AsyncSandbox, timeout: Optional[float] = 60) -> None

サンドボックスを停止し、停止完了まで待機します。

引数:

  • sandbox Sandbox - 停止するサンドボックス。
  • timeout Optional[float] - サンドボックスの停止完了を待機するタイムアウト(秒)。省略可。 0 はタイムアウトなしを意味します。デフォルトは 60 秒です。

例外:

  • DaytonaError - タイムアウトが負の値の場合、またはサンドボックスの停止に失敗した場合・タイムアウトした場合

CodeLanguage

@dataclass
class CodeLanguage(Enum)

Daytona がサポートするプログラミング言語

列挙体メンバー:

  • PYTHON (“python”)
  • TYPESCRIPT (“typescript”)
  • JAVASCRIPT (“javascript”)

DaytonaConfig

class DaytonaConfig(BaseModel)

Daytona クライアントを初期化するための設定オプション。

属性:

  • api_key Optional[str] - Daytona API への認証に使用する API キー。未設定の場合は 環境変数 DAYTONA_API_KEY で指定するか、代わりに JWT トークンを指定する必要があります。
  • jwt_token Optional[str] - Daytona API への認証に使用する JWT トークン。未設定の場合は 環境変数 DAYTONA_JWT_TOKEN で指定するか、代わりに API キーを指定する必要があります。
  • organization_id Optional[str] - JWT ベース認証で使用する組織 ID。JWT トークンが指定されている場合は必須で、 ここで指定するか、環境変数 DAYTONA_ORGANIZATION_ID に設定する必要があります。
  • api_url Optional[str] - Daytona API の URL。ここまたは環境変数 DAYTONA_API_URL で未設定の場合は、 既定値は 'https://app.daytona.io/api' です。
  • server_url Optional[str] - 廃止予定。代わりに api_url を使用してください。このプロパティは 将来のバージョンで削除されます。
  • target Optional[str] - サンドボックスのターゲットとなるランナーのロケーション。ここまたは 環境変数 DAYTONA_TARGET で未設定の場合は、既定で 'us' になります。

:

config = DaytonaConfig(api_key="your-api-key")
config = DaytonaConfig(jwt_token="your-jwt-token", organization_id="your-organization-id")

CreateSandboxBaseParams

class CreateSandboxBaseParams(BaseModel)

新しいサンドボックスを作成するための基本パラメータ。

属性:

  • language Optional[CodeLanguage] - サンドボックスのプログラミング言語。既定は “python”。
  • os_user Optional[str] - サンドボックスの OS ユーザー。
  • env_vars Optional[Dict[str, str]] - サンドボックスで設定する環境変数。
  • labels Optional[Dict[str, str]] - サンドボックスのカスタムラベル。
  • public Optional[bool] - サンドボックスを公開にするかどうか。
  • timeout Optional[float] - サンドボックスの作成と起動のタイムアウト(秒)。
  • auto_stop_interval Optional[int] - サンドボックスでイベントが発生しない場合に、 自動的に停止するまでの間隔(分)。既定は 15 分。 0 は自動停止なしを意味します。
  • auto_archive_interval Optional[int] - 連続して停止状態のサンドボックスが 自動的にアーカイブされるまでの間隔(分)。既定は 7 日。 0 は最大の間隔が使用されることを意味します。
  • auto_delete_interval Optional[int] - 連続して停止状態のサンドボックスが 自動的に削除されるまでの間隔(分)。既定では自動削除は無効です。 負の値は無効、0 は停止と同時に即削除を意味します。
  • volumes Optional[List[VolumeMount]] - サンドボックスにアタッチするボリュームのマウント一覧。
  • network_block_all Optional[bool] - サンドボックスのすべてのネットワークアクセスをブロックするかどうか。
  • network_allow_list Optional[str] - サンドボックスで許可する CIDR ネットワークアドレスのカンマ区切りリスト。

CreateSandboxFromImageParams

class CreateSandboxFromImageParams(CreateSandboxBaseParams)

イメージから新規サンドボックスを作成するためのパラメータ。

属性:

  • image Union[str, Image] - サンドボックスで使用するカスタム Docker イメージ。Image オブジェクトが渡された場合は、 イメージが動的にビルドされます。
  • resources Optional[Resources] - サンドボックスのリソース設定。指定しない場合、サンドボックスは デフォルトのリソースを使用します。

CreateSandboxFromSnapshotParams

class CreateSandboxFromSnapshotParams(CreateSandboxBaseParams)

スナップショットから新しいサンドボックスを作成するためのパラメーター。

属性:

  • snapshot Optional[str] - サンドボックスに使用するスナップショットの名前。