Panduan ini membawa Anda dari nol sampai sandbox yang berjalan di Python. Anda akan menjalankan microVM Firecracker yang terisolasi, mengeksekusi kode di dalamnya, memasang paket, memindahkan file masuk dan keluar, lalu menjalankan sesuatu yang lama di latar belakang. Setiap langkah hanya beberapa baris untuk ditempel.
Anda butuh Python 3.8 atau lebih baru dan akun EQVPS. SDK ini tidak punya dependensi.
1. Dapatkan token
Sandbox dibayar dari saldo akun, jadi SDK butuh token akun. Halaman menghubungkan akun menunjukkan tiga cara mendapatkannya: dasbor, API, atau server MCP. Lalu simpan di environment:
export EQVPS_API_KEY="your-token"
Belum punya saldo? Tidak masalah. Saat akun baru pertama kali membuat sandbox tanpa saldo yang cukup, akun itu mendapat kredit sandbox $1 yang berlaku 14 hari.
2. Pasang SDK
pip install eqvps
3. Jalankan sandbox dan eksekusi kode
Simpan ini sebagai hello.py lalu jalankan:
from eqvps import Sandbox
with Sandbox.create(tariff="small") as sb:
print(sb.id)
r = sb.run("import platform; print(platform.python_version())")
print(r.exit_code, r.stdout)
Anda akan melihat id sandbox (sb_ dan 24 karakter lagi), lalu 0 3.12.x. Sandbox menyala dalam sekitar satu detik, menjalankan kode, dan terhapus saat blok with selesai.
Hal yang perlu diketahui tentang hasilnya:
r.okbernilai true jika kode keluar 0 dan perintah tidak kena batas waktu;- kode keluar yang bukan nol bukan exception, jadi periksa
r.oksendiri; stdoutdanstderrmasing-masing dibatasi 1 MiB, danr.truncatedmemberi tahu jika output terpotong.
4. Pasang paket dan jalankan perintah shell
Di dalam sandbox Anda adalah root pada sistem Linux kecil dengan Python, Node.js, git, dan curl. exec menjalankan perintah shell apa pun:
from eqvps import Sandbox
with Sandbox.create(tariff="small") as sb:
sb.exec("pip install --quiet requests", timeout=55)
r = sb.run("import requests; print(requests.get('https://example.com').status_code)")
print(r.stdout) # 200
Batas waktu bawaan 30 detik dan panggilan sinkron paling lama 55 detik. Instalasi besar sebaiknya dijalankan sebagai tugas latar belakang (langkah 6).
5. Pindahkan file masuk dan keluar
from eqvps import Sandbox
with Sandbox.create() as sb:
sb.upload("/root/data.csv", "a,b\n1,2\n3,4\n")
sb.run("""
import csv
rows = list(csv.DictReader(open('/root/data.csv')))
open('/root/sum.txt', 'w').write(str(sum(int(r['b']) for r in rows)))
""")
print(sb.download_text("/root/sum.txt")) # 6
Path harus absolut. Satu transfer dibatasi 5 MB; download mengembalikan byte, download_text mengembalikan string.
6. Jalankan pekerjaan panjang di latar belakang
Berikan background=True dan Anda langsung mendapat tugas, tanpa menunggu. Tugas ini tidak punya batas 55 detik:
from eqvps import Sandbox
with Sandbox.create(tariff="standard") as sb:
task = sb.exec("for i in 1 2 3 4 5; do echo step $i; sleep 20; done", background=True)
result = task.wait(on_output=lambda out, err: print(out, end=""))
print(result.state, result.exit_code) # done 0
task.wait() memeriksa setiap 2 detik dan mencetak output baru begitu tiba. Anda juga bisa memanggil task.logs() sendiri, atau task.kill() untuk menghentikannya. Selama tugas berjalan, sandbox tidak dihapus karena tidak aktif.
Berapa biayanya
Setiap blok with di atas hidup beberapa detik dan ditagih minimum 60 detik. Di small itu $0.00055 per blok, jadi kelima contoh sekaligus kira-kira sepertiga sen. Harga semua tarif, mode persisten, dan batas pengeluaran ada di batas dan penagihan sandbox.
Saat ada yang gagal
Error dari API adalah exception yang bisa Anda tangkap:
from eqvps import Sandbox, InsufficientBalanceError, RateLimitError
try:
with Sandbox.create() as sb:
print(sb.run("print(1)").stdout)
except InsufficientBalanceError:
print("Top up the balance")
except RateLimitError as e:
print("Too many at once, retry in", e.retry_after)
SDK sudah mengulang respons 429 dan 503 hingga tiga kali saat server memberi tahu berapa lama harus menunggu. Ke-11 kelas error tercantum di referensi SDK.
Langkah berikutnya
- Langkah yang sama di JavaScript: SDK TypeScript untuk sandbox dalam 5 menit.
- Biarkan model AI menulis kodenya dan menjalankannya di sini: tugas agen pertama Anda di sandbox.
- Tarif, kredit uji coba, dan isi sebuah sandbox: halaman sandbox.
Komentar
Belum ada komentar. Jadilah yang pertama.