SandboxesÜbersicht

Sandboxes

Sandboxes führen kurze Befehle und Agentenaufgaben in Kubernetes-Pods mit runc aus. Sie teilen den Kernel des Hosts und sind keine Firecracker-VMs. Beschränken Sie Zugangsdaten und Netzwerkzugriff für nicht vertrauenswürdigen Code.

Laufzeit und Vorlagen

Wählen Sie eine Vorlage aus dem aktuellen Katalog. Aktiviert sind unter anderem base, codex und interpreter; die Verfügbarkeit hängt von Region und Pool-Kapazität ab. interpreter enthält Python und gängige Datenbibliotheken. Prüfen Sie die Werkzeugversionen in der Sandbox. Die öffentliche CLI bietet keinen Upload eigener Vorlagen.

Lebenszyklus

Erstellen Sie eine Sandbox, führen Sie Befehle aus und rufen Sie danach kill auf. connect verbindet mit einer bestehenden Sandbox, ohne ihren Zustand zu ändern; eine pausierte oder gestoppte Sandbox wird dadurch nicht fortgesetzt. Pause, Fortsetzen, Snapshot und Restore sind verfügbar; siehe Pause, Fortsetzen und Snapshots. Fork und Dateiüberwachung geben HTTP 501 zurück. lizard sandbox ssh öffnet eine interaktive Shell mit Ihren CLI-Zugangsdaten. Zugriff über das SSH-Protokoll gibt es nicht, daher funktionieren SSH-Clients, scp und Portweiterleitung nicht.

create -> running -> stopped (kill / expiration)
running -> paused -> running (pause / resume)
snapshot -> new sandbox (restore)

Ressourcen und Laufzeit

Wählen Sie beim Erstellen eine Größe: Small (2 vCPU / 4 GB), Medium (4 vCPU / 8 GB, Standard) oder Large (8 vCPU / 16 GB). Siehe Größen und Preise. Geben Sie bei Bedarf eine Region an; ein Katalogeintrag garantiert keine freie Kapazität.

SDK und CLI setzen standardmäßig eine Laufzeit von fünf Minuten. Die direkte API und das Dashboard setzen standardmäßig kein Ablaufdatum. Geben Sie die Laufzeit ausdrücklich an: timeoutMs: 0 bei der Erstellung deaktiviert den Ablauf; ein positiver Wert setzt eine Frist. setTimeout akzeptiert 1000–2147483647 ms, nicht null. Befehle verlängern die Frist nicht. Dies ist kein Leerlauf-Timer.

Speicher und Abrechnung

Dateien und laufende Prozesse bleiben verfügbar, solange die Sandbox läuft. Nach dem Stopp kann eine spätere Sandbox nur Dateien auf einem angehängten Persistent Volume unter /workspace wiederverwenden. Ohne Volume ist /workspace temporär. Ein Volume hängt jeweils an einer Sandbox und liegt auf einem einzelnen Knoten. Exportieren Sie Dateien, die einen Knotenausfall überstehen müssen.

Jede Größe hat einen festen Stundenpreis, sekundengenau abgerechnet, solange die Sandbox läuft, Leerlauf eingeschlossen. Ausgehender Traffic ist bis 2 TB pro Konto in rollierenden 30 Tagen enthalten. Eine aus einem Snapshot wiederhergestellte Sandbox wird nach gemessener Nutzung abgerechnet. Eine pausierte Sandbox kostet nichts; Persistent Volumes werden getrennt abgerechnet, solange Sie die Daten behalten. Pausieren oder beenden Sie eine Sandbox, wenn die Aufgabe erledigt ist.

import { Sandbox } from '@lizard-build/sdk';
 
const sandbox = await Sandbox.create('interpreter', {
  projectId: 'proj_123', timeoutMs: 300_000,
});
try {
  const result = await sandbox.process.exec("python -c 'print(2 ** 10)'");
  console.log(result.stdout, result.stderr, result.exitCode);
} finally {
  await sandbox.kill();
}

Schnellstart · SDK-Referenz · Python ausführen · Dashboard · Persistent Volumes