Това ръководство ви води от нулата до работещ пясъчник на Python. Ще пуснете изолирана microVM на Firecracker, ще изпълните код в нея, ще инсталирате пакет, ще прехвърлите файл навътре и навън и ще пуснете нещо дълго във фонов режим. Всяка стъпка е няколко реда за поставяне.
Нужни са ви Python 3.8 или по-нов и акаунт в EQVPS. SDK няма зависимости.
1. Вземете токен
Пясъчниците се плащат от наличността на акаунта, затова SDK се нуждае от токен на акаунта. Страницата свързване на акаунта показва трите начина да го получите: таблото, API или MCP сървъра. След това го сложете в средата:
export EQVPS_API_KEY="your-token"
Още нямате наличност? Няма проблем. Когато нов акаунт за първи път създаде пясъчник без достатъчно наличност, той получава 1 $ кредит за пясъчници, валиден 14 дни.
2. Инсталирайте SDK
pip install eqvps
3. Пуснете пясъчник и изпълнете код
Запазете това като hello.py и го пуснете:
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)
Ще видите id на пясъчника (sb_ и още 24 знака), а след това 0 3.12.x. Пясъчникът стартира за около секунда, изпълни кода и беше изтрит, когато блокът with приключи.
Полезно е да знаете за резултата:
r.okе true, когато кодът на изход е 0 и командата не е стигнала таймаута си;- ненулев код на изход не е изключение, затова проверявайте
r.okсами; stdoutиstderrса ограничени до 1 MiB всеки, аr.truncatedпоказва дали изходът е отрязан.
4. Инсталирайте пакет и пускайте shell команди
В пясъчника сте root в малка Linux система с Python, Node.js, git и curl. exec изпълнява всяка shell команда:
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
Таймаутът по подразбиране е 30 секунди, а синхронно извикване трае най-много 55. Големите инсталации са за фонова задача (стъпка 6).
5. Прехвърлете файлове навътре и навън
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
Пътищата трябва да са абсолютни. Едно прехвърляне е ограничено до 5 MB; download връща байтове, download_text — низ.
6. Пуснете дълга задача във фонов режим
Подайте background=True и вместо да чакате, получавате задача. Тя няма ограничение от 55 секунди:
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() проверява на всеки 2 секунди и отпечатва новия изход веднага щом пристигне. Можете и сами да извиквате task.logs() или task.kill(), за да я спрете. Докато задача работи, пясъчникът не се изтрива заради бездействие.
Колко струваше
Всеки блок with по-горе живя няколко секунди и беше таксуван с минимума от 60 секунди. На small това е 0,00055 $ на блок, така че петте примера заедно струват около една трета от цента. Цените на всички тарифи, постоянният режим и лимитите на разходите са в лимити и таксуване на пясъчниците.
Когато нещо се обърка
Грешките на API са изключения, които можете да хванете:
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 вече повтаря отговорите 429 и 503 до три пъти, когато сървърът каже колко да се чака. Всичките 11 класа грешки са в справочника за SDK.
Следващи стъпки
- Същите стъпки на JavaScript: TypeScript SDK за пясъчници за 5 минути.
- Нека AI модел пише кода и го изпълнява тук: първата ви агентска задача в пясъчник.
- Тарифи, пробен кредит и какво има в пясъчника: страницата на пясъчниците.
Коментари
Още няма коментари. Бъди първият.