Daytona
Daytona API と対話するためのメインクラス。 Daytona サンドボックスの作成、管理、操作のためのメソッドを提供します。 明示的な設定または環境変数を使用して初期化できます。
プロパティ:
snapshot
SnapshotService - Daytona スナップショットを管理するサービスvolume
VolumeService - Daytona ボリュームを管理するサービス
例:
// Using environment variables// Uses DAYTONA_API_KEY, DAYTONA_API_URL, DAYTONA_TARGETconst daytona = new Daytona();const sandbox = await daytona.create();
// Using explicit configurationconst config: DaytonaConfig = { apiKey: "your-api-key", apiUrl: "https://your-api.com", target: "us"};const daytona = new Daytona(config);
@class
コンストラクター
new Daytona()
new Daytona(config?: DaytonaConfig): Daytona
新しい Daytona クライアントインスタンスを作成します。
パラメータ:
config?
DaytonaConfig - 設定オプション
戻り値:
Daytona
スロー:
DaytonaError
- API キーが指定されていない場合
メソッド
create()
呼び出しシグネチャ
create(params?: CreateSandboxFromSnapshotParams, options?: { timeout: number;}): Promise<Sandbox>
指定済みまたはデフォルトのスナップショットからサンドボックスを作成します。言語、イメージ、環境変数、ボリュームなど、さまざまなパラメータを指定できます。
パラメータ:
params?
CreateSandboxFromSnapshotParams - スナップショットからサンドボックスを作成するためのパラメータoptions?
作成処理のオプションtimeout?
number - タイムアウト(秒)(0 はタイムアウトなし、デフォルトは 60)
戻り値:
Promise<Sandbox>
- 作成されたサンドボックスインスタンス
例:
const sandbox = await daytona.create();
// Create a custom sandboxconst params: CreateSandboxFromSnapshotParams = { language: 'typescript', snapshot: 'my-snapshot-id', envVars: { NODE_ENV: 'development', DEBUG: 'true' }, autoStopInterval: 60, autoArchiveInterval: 60, autoDeleteInterval: 120};const sandbox = await daytona.create(params, { timeout: 100 });
呼び出しシグネチャ
create(params?: CreateSandboxFromImageParams, options?: { onSnapshotCreateLogs: (chunk: string) => void; timeout: number;}): Promise<Sandbox>
レジストリで利用可能な指定イメージ、または宣言的 Daytona イメージからサンドボックスを作成します。リソース、言語、イメージ、環境変数、ボリュームなど、さまざまなパラメータを指定できます。Daytona は提供されたイメージからスナップショットを作成し、それを用いてサンドボックスを作成します。
パラメータ:
params?
CreateSandboxFromImageParams - イメージからサンドボックスを作成するためのパラメータoptions?
作成処理のオプションonSnapshotCreateLogs?
(chunk: string) => void - スナップショット作成ログを処理するコールバック関数timeout?
number - タイムアウト(秒)(0 はタイムアウトなし、デフォルトは 60)
戻り値:
Promise<Sandbox>
- 作成されたサンドボックスインスタンス
例:
const sandbox = await daytona.create({ image: 'debian:12.9' }, { timeout: 90, onSnapshotCreateLogs: console.log });
// Create a custom sandboxconst image = Image.base('alpine:3.18').pipInstall('numpy');const params: CreateSandboxFromImageParams = { language: 'typescript', image, envVars: { NODE_ENV: 'development', DEBUG: 'true' }, resources: { cpu: 2, memory: 4 // 4GB RAM }, autoStopInterval: 60, autoArchiveInterval: 60, autoDeleteInterval: 120};const sandbox = await daytona.create(params, { timeout: 100, onSnapshotCreateLogs: console.log });
delete()
delete(sandbox: Sandbox, timeout: number): Promise<void>
サンドボックスを削除します。
パラメータ:
sandbox
Sandbox - 削除するサンドボックスtimeout
number = 60 - タイムアウト(秒)(0 はタイムアウトなし、デフォルトは 60)
戻り値:
Promise<void>
例:
const sandbox = await daytona.get('my-sandbox-id');await daytona.delete(sandbox);
findOne()
findOne(filter: SandboxFilter): Promise<Sandbox>
ID またはラベルでサンドボックスを検索します。
パラメータ:
filter
SandboxFilter - サンドボックスのフィルター
戻り値:
Promise<Sandbox>
- ID またはラベルに一致する最初のサンドボックス。
例:
const sandbox = await daytona.findOne({ labels: { 'my-label': 'my-value' } });console.log(`Sandbox ID: ${sandbox.id}, State: ${sandbox.state}`);
get()
get(sandboxId: string): Promise<Sandbox>
ID でサンドボックスを取得します。
パラメータ:
sandboxId
string - 取得するサンドボックスの ID
戻り値:
Promise<Sandbox>
- 対象のサンドボックス
例:
const sandbox = await daytona.get('my-sandbox-id');console.log(`Sandbox state: ${sandbox.state}`);
list()
list(labels?: Record<string, string>): Promise<Sandbox[]>
ラベルでフィルタしたサンドボックスを一覧表示します。
パラメータ:
labels?
Record<string, string> - サンドボックスを絞り込むラベル
戻り値:
Promise<Sandbox[]>
- ラベルに一致するサンドボックスの配列。
例:
const sandboxes = await daytona.list({ 'my-label': 'my-value' });for (const sandbox of sandboxes) { console.log(`${sandbox.id}: ${sandbox.state}`);}
start()
start(sandbox: Sandbox, timeout?: number): Promise<void>
サンドボックスを起動し、準備完了になるまで待機します。
パラメータ:
sandbox
Sandbox - 起動するサンドボックスtimeout?
number - 任意のタイムアウト(秒)(0 はタイムアウトなし)
戻り値:
Promise<void>
例:
const sandbox = await daytona.get('my-sandbox-id');// サンドボックスの起動を最大 60 秒待機await daytona.start(sandbox, 60);
stop()
stop(sandbox: Sandbox): Promise<void>
サンドボックスを停止します。
パラメータ:
sandbox
Sandbox - 停止するサンドボックス
戻り値:
Promise<void>
例:
const sandbox = await daytona.get('my-sandbox-id');await daytona.stop(sandbox);
CodeLanguage
コード実行でサポートされているプログラミング言語
列挙メンバー:
JAVASCRIPT
(“javascript”)PYTHON
(“python”)TYPESCRIPT
(“typescript”)
CreateSandboxBaseParams
新しいサンドボックスを作成するための基本パラメータ。
プロパティ:
autoArchiveInterval?
number - 自動アーカイブの間隔(分)。0 は最大間隔を使用することを意味します。デフォルトは 7 日。autoDeleteInterval?
number - 自動削除の間隔(分)。負の値は無効、0 は停止時に即時削除を意味します。デフォルトでは自動削除は無効です。autoStopInterval?
number - 自動停止の間隔(分)。0 は無効を意味します。デフォルトは 15 分。envVars?
Record<string, string> - サンドボックスに設定する任意の環境変数labels?
Record<string, string> - サンドボックスのラベルlanguage?
string - 直接コード実行用のプログラミング言語networkAllowList?
string - サンドボックスで許可する CIDR ネットワークアドレスのカンマ区切りリストnetworkBlockAll?
boolean - サンドボックスのネットワークアクセスをすべてブロックするかどうかpublic?
boolean - サンドボックスのポートプレビューを公開するかどうかuser?
string - サンドボックスで使用する任意の OS ユーザーvolumes?
VolumeMount[] - サンドボックスにマウントする任意のボリューム配列
CreateSandboxFromImageParams
新しいサンドボックスを作成するためのパラメータ。
プロパティ:
autoArchiveInterval?
numberautoDeleteInterval?
numberautoStopInterval?
numberenvVars?
Record<string, string>image
string | Image - サンドボックスに使用するカスタム Docker イメージ。Image オブジェクトが指定された場合は、 イメージが動的にビルドされます。labels?
Record<string, string>language?
stringnetworkAllowList?
stringnetworkBlockAll?
booleanpublic?
booleanresources?
Resources - サンドボックスのリソース割り当て。指定しない場合、サンドボックスは 既定のリソースを使用します。user?
stringvolumes?
VolumeMount[]
CreateSandboxFromSnapshotParams
スナップショットから新しいサンドボックスを作成するためのパラメータ。
プロパティ:
autoArchiveInterval?
numberautoDeleteInterval?
numberautoStopInterval?
numberenvVars?
Record<string, string>labels?
Record<string, string>language?
stringnetworkAllowList?
stringnetworkBlockAll?
booleanpublic?
booleansnapshot?
string - サンドボックスに使用するスナップショット名。user?
stringvolumes?
VolumeMount[]
DaytonaConfig
Daytona クライアントを初期化するための設定オプション。
プロパティ:
apiKey?
string - Daytona API で認証するための API キーapiUrl?
string - Daytona API の URL。ここで未設定で、かつ環境変数 DAYTONA_API_URL でも未設定の場合は、既定で ‘https://app.daytona.io/api’ が使用されます。jwtToken?
string - Daytona API で認証するための JWT トークン。未設定の場合は、 環境変数DAYTONA_JWT_TOKEN
で指定するか、代わりに API キーを指定する必要があります。organizationId?
string - JWT ベース認証で使用される組織 ID。JWT トークンが指定されている場合に必須で、ここで設定するか、環境変数DAYTONA_ORGANIZATION_ID
で設定する必要があります。string - 非推奨 - 代わりにserverUrl?
apiUrl
を使用してください。このプロパティは今後のバージョンで削除されます。target?
string - サンドボックスのターゲット(ロケーション)
例:
const config: DaytonaConfig = { apiKey: "your-api-key", apiUrl: "https://your-api.com", target: "us"};const daytona = new Daytona(config);
Resources
サンドボックスのリソース割り当て。
プロパティ:
cpu?
number - サンドボックスの CPU 割り当て(コア数)disk?
number - サンドボックスのディスク割り当て(GiB)gpu?
number - サンドボックスの GPU 割り当て(ユニット)memory?
number - サンドボックスのメモリ割り当て(GiB)
例:
const resources: SandboxResources = { cpu: 2, memory: 4, // 4GiB RAM disk: 20 // 20GiB disk};
SandboxFilter
サンドボックスのフィルター。
プロパティ:
id?
string - 取得するサンドボックスの IDlabels?
Record<string, string> - サンドボックスを絞り込むためのラベル
VolumeMount
サンドボックスのボリュームマウントを表します。
プロパティ:
-
mountPath
string - サンドボックス上でボリュームをマウントするパス -
volumeId
string - マウントするボリュームのID
継承:
SandboxVolume