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
@overloadasync 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
@overloadasync 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
@dataclassclass 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] - サンドボックスに使用するスナップショットの名前。