コンテンツにスキップ

Daytona

Daytona API と対話するためのメインクラス。 Daytona サンドボックスの作成、管理、操作のためのメソッドを提供します。 明示的な設定または環境変数を使用して初期化できます。

プロパティ:

  • snapshot SnapshotService - Daytona スナップショットを管理するサービス
  • volume VolumeService - Daytona ボリュームを管理するサービス

例:

// Using environment variables
// Uses DAYTONA_API_KEY, DAYTONA_API_URL, DAYTONA_TARGET
const daytona = new Daytona();
const sandbox = await daytona.create();
// Using explicit configuration
const 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 sandbox
const 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 sandbox
const 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? number
  • autoDeleteInterval? number
  • autoStopInterval? number
  • envVars? Record<string, string>
  • image string | Image - サンドボックスに使用するカスタム Docker イメージ。Image オブジェクトが指定された場合は、 イメージが動的にビルドされます。
  • labels? Record<string, string>
  • language? string
  • networkAllowList? string
  • networkBlockAll? boolean
  • public? boolean
  • resources? Resources - サンドボックスのリソース割り当て。指定しない場合、サンドボックスは 既定のリソースを使用します。
  • user? string
  • volumes? VolumeMount[]

CreateSandboxFromSnapshotParams

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

プロパティ:

  • autoArchiveInterval? number
  • autoDeleteInterval? number
  • autoStopInterval? number
  • envVars? Record<string, string>
  • labels? Record<string, string>
  • language? string
  • networkAllowList? string
  • networkBlockAll? boolean
  • public? boolean
  • snapshot? string - サンドボックスに使用するスナップショット名。
  • user? string
  • volumes? 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 で設定する必要があります。
  • serverUrl? string - 非推奨 - 代わりに 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 - 取得するサンドボックスの ID
  • labels? Record<string, string> - サンドボックスを絞り込むためのラベル

VolumeMount

サンドボックスのボリュームマウントを表します。

プロパティ:

  • mountPath string - サンドボックス上でボリュームをマウントするパス

  • volumeId string - マウントするボリュームのID

継承:

  • SandboxVolume