SDK-Referenz
Installieren Sie das Lizard SDK und erstellen Sie unter Settings → API keys einen API-Schlüssel. Speichern Sie ihn in LIZARD_API_KEY. Jede Sandbox braucht ein Projekt: übergeben Sie projectId (Python: project_id) oder ID, Slug oder Name über project.
Erstellungsoptionen
| TypeScript | Python |
|---|---|
projectId / project | project_id / project |
timeoutMs | timeout_ms |
region | region |
volumeName / volumeId | volume_name / volume_id |
size | size |
snapshotId | snapshot_id |
apiKey | api_key |
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.
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.
Methoden
| API (TypeScript) | Methoden |
|---|---|
Sandbox.create(template, options) | Aus einer Katalogvorlage in einem Projekt erstellen. |
Sandbox.connect(sandboxId) | Mit bestehender Sandbox verbinden; kein Resume. |
Sandbox.list() | Zugängliche Sandboxes auflisten; Status prüfen. |
sandbox.getInfo() | Status und Metadaten abrufen. |
sandbox.process.exec(cmd) | Shell-Befehl ausführen; stdout, stderr und exitCode liefern. |
sandbox.fs.write(path, data) | Text oder UTF-8 schreiben; Elternverzeichnisse erstellen. |
sandbox.fs.read(path) | UTF-8-Text lesen. |
sandbox.fs.readBytes(path) | Dateibytes lesen. |
sandbox.fs.list(path) | Verzeichniseinträge auflisten. |
sandbox.fs.makeDir(path) | Verzeichnis und fehlende Eltern erstellen. |
sandbox.fs.remove(path) | Datei oder Verzeichnis entfernen. |
sandbox.getHost(port) | Öffentlichen HTTPS-Hostnamen für einen Port registrieren. |
sandbox.setTimeout(ms) | Verbleibende Laufzeit setzen, mindestens 1000 ms. |
sandbox.pause() / sandbox.resume() | Pause oder Fortsetzen einreihen und sofort zurückkehren. |
sandbox.waitForStatus(status) | Auf paused oder running warten; einen Fehler auslösen, wenn die Pause scheitert. |
sandbox.snapshot(name, { poolSize }) | Arbeitsspeicher und /workspace-Dateien als privaten Snapshot speichern. |
Sandbox.waitForSnapshot(snapshotId) | Warten, bis ein Snapshot bereit ist. |
Sandbox.restore(snapshotId) | Neue Sandbox aus einer bereiten Kopie starten. |
sandbox.kill() | Sandbox stoppen und Volume trennen. |
Python: exec_, get_info, get_host, set_timeout, sandbox_id, read_bytes, make_dir, wait_for_status, wait_for_snapshot, pool_size.
Aktuelle Laufzeitlimits
Befehlsergebnisse enthalten stdout, stderr und den Exit-Code. Befehls-Timeouts liegen zwischen 1 und 600 Sekunden. Die aktuelle Laufzeit wendet die SDK-Optionen envs, workdir und user nicht an; setzen Sie Verzeichnis und Umgebung im Shell-Befehl. Auch envs und metadata bei der Erstellung werden nicht angewendet.
fs.write schreibt Text oder gültige UTF-8-Bytes; fs.read liest Text. Der aktuelle Schreib-Endpunkt unterstützt keine binären Uploads. Für binäre Downloads verwenden Sie fs.readBytes (Python: read_bytes).
Übergeben Sie size ('small', 'medium' oder 'large') für 2 vCPU / 4 GB, 4 vCPU / 8 GB (Standard) oder 8 vCPU / 16 GB; siehe Größen und Preise. Für eine aus einem Snapshot wiederhergestellte Sandbox gilt size nicht. Geben Sie bei Bedarf eine Region an; ein Katalogeintrag garantiert keine freie Kapazität.
Nicht unterstützte APIs
sandbox.fork() und Dateiüberwachung geben HTTP 501 zurück. Sandbox.connect setzt keine pausierte oder gestoppte Sandbox fort; rufen Sie für eine pausierte resume() auf. Zugriff über das SSH-Protokoll gibt es nicht; lizard sandbox ssh öffnet eine interaktive Shell mit Ihren CLI-Zugangsdaten.
CodeSandbox, runCode / run_code und Kontextmethoden bleiben im SDK, doch dem gehosteten Vorlagenkatalog fehlt der benötigte Ausführungsserver. Die alte Standardvorlage code-interpreter-v1 ist nicht verfügbar. Ein Wechsel zu interpreter aktiviert diese API nicht. Nutzen Sie Sandbox.create("interpreter") und Prozessbefehle wie unten gezeigt.
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.
Schnellstart · SDK-Referenz · Python ausführen · Dashboard · Persistent Volumes