Mwongozo huu unakutoa sifuri hadi sandbox inayofanya kazi kwa Python. Utawasha microVM ya Firecracker iliyotengwa, utaendesha msimbo ndani yake, utasakinisha kifurushi, utahamisha faili ndani na nje, na utaendesha kitu kirefu chinichini. Kila hatua ni mistari michache ya kubandika.
Unahitaji Python 3.8 au mpya zaidi na akaunti ya EQVPS. SDK haina utegemezi wowote.
1. Pata tokeni
Sandbox zinalipwa kutoka salio la akaunti, kwa hiyo SDK inahitaji tokeni ya akaunti. Ukurasa wa kuunganisha akaunti unaonyesha njia tatu za kuipata: dashibodi, API au seva ya MCP. Kisha iweke kwenye mazingira:
export EQVPS_API_KEY="your-token"
Bado huna salio? Si tatizo. Mara ya kwanza akaunti mpya inapounda sandbox bila salio la kutosha, inapata $1 ya mkopo wa sandbox, halali kwa siku 14.
2. Sakinisha SDK
pip install eqvps
3. Washa sandbox na endesha msimbo
Hifadhi hii kama hello.py kisha uiendeshe:
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)
Utaona kitambulisho cha sandbox (sb_ na herufi 24 zaidi) kisha 0 3.12.x. Sandbox iliwaka kwa takriban sekunde moja, ikaendesha msimbo na ikafutwa kizuizi cha with kilipoisha.
Mambo ya kujua kuhusu matokeo:
r.okni true msimbo wa kutoka ukiwa 0 na amri haikufikia muda wake wa mwisho;- msimbo wa kutoka usio sifuri si exception, kwa hiyo kagua
r.okmwenyewe; stdoutnastderrzina kikomo cha 1 MiB kila moja, nar.truncatedinakuambia kama matokeo yalikatwa.
4. Sakinisha kifurushi na endesha amri za shell
Ndani ya sandbox wewe ni root kwenye mfumo mdogo wa Linux wenye Python, Node.js, git na curl. exec inaendesha amri yoyote ya 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
Muda wa mwisho wa chaguo-msingi ni sekunde 30 na wito wa kisawazishi unaweza kudumu hadi 55 tu. Usakinishaji mkubwa unafaa kuwa kazi ya chinichini (hatua ya 6).
5. Hamisha faili ndani na nje
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
Njia lazima ziwe kamili. Uhamisho mmoja una kikomo cha 5 MB; download inarudisha baiti, download_text inarudisha maandishi.
6. Endesha kazi ndefu chinichini
Weka background=True na utapata kazi badala ya kusubiri. Haina kikomo cha sekunde 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() inakagua kila sekunde 2 na kuchapisha matokeo mapya yanapofika. Unaweza pia kuita task.logs() mwenyewe, au task.kill() kuisimamisha. Kazi ikiwa inaendelea, sandbox haifutwi kwa kukosa shughuli.
Gharama yake
Kila kizuizi cha with hapo juu kiliishi sekunde chache na kilitozwa kima cha chini cha sekunde 60. Kwenye small hiyo ni $0.00055 kwa kila kizuizi, kwa hiyo mifano yote mitano kwa pamoja inagharimu takriban theluthi ya senti. Bei za vifurushi vyote, hali ya kudumu na vikomo vya matumizi ziko kwenye vikomo na malipo ya sandbox.
Kitu kikienda vibaya
Hitilafu za API ni exceptions unazoweza kukamata:
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 tayari inajaribu tena majibu ya 429 na 503 hadi mara tatu seva inaposema ni muda gani wa kusubiri. Madarasa yote 11 ya hitilafu yameorodheshwa kwenye marejeo ya SDK.
Hatua zinazofuata
- Hatua hizo hizo kwa JavaScript: SDK ya TypeScript kwa sandbox kwa dakika 5.
- Acha modeli ya AI iandike msimbo na iuendeshe hapa: kazi yako ya kwanza ya wakala ndani ya sandbox.
- Vifurushi, mkopo wa majaribio na kilicho ndani ya sandbox: ukurasa wa sandbox.
Maoni
Bado hakuna maoni. Kuwa wa kwanza.