−25%

د Windows پر کلنۍ تادیه، تر ۳۱ اکتوبر. پلانونه وګورئ

EQVPS
پیل وکړئ

په ۵ دقیقو کې د sandbox لپاره Python SDK: له pip install eqvps څخه تر لومړي اجرا پورې

د EQVPS Python SDK نصب کړئ، د Firecracker sandbox چالان کړئ، کوډ وچلوئ، کڅوړه نصب کړئ، فایلونه ولېږدوئ او یوه اوږده دنده په شالید کې وچلوئ. شپږ ګامونه له ټولو کمانډونو سره، او ټول لګښت یې له یوه سنټ لږ دی.

دا لارښود تاسو له صفر څخه په Python کې یو چلېدونکي sandbox ته رسوي. تاسو به یو جلا Firecracker microVM چالان کړئ، په هغه کې کوډ وچلوئ، یوه کڅوړه نصب کړئ، یو فایل ورته ننباسئ او بیا یې راوباسئ، او یو اوږد کار به په شالید کې وچلوئ. هر ګام یو څو کرښې دي چې یوازې یې پېسټ کوئ.

تاسو Python 3.8 یا نوي نسخې او یو EQVPS حساب ته اړتیا لرئ. SDK هېڅ تړاو نه لري.

۱. ټوکن واخلئ

د sandboxونو پیسې د حساب له بیلانس څخه کمېږي، نو SDK د حساب ټوکن ته اړتیا لري. د حساب نښلول پاڼه یې د ترلاسه کولو درې لارې ښيي: ډشبورډ، API یا MCP سرور. بیا یې د چاپېریال په متغیرونو کې کېږدئ:

export EQVPS_API_KEY="your-token"

تر اوسه بیلانس نه لرئ؟ کومه ستونزه نشته. کله چې نوی حساب لومړی ځل پرته له کافي بیلانس sandbox جوړوي، د sandbox لپاره $1 کریډیټ ترلاسه کوي چې ۱۴ ورځې اعتبار لري.

۲. SDK نصب کړئ

pip install eqvps

۳. sandbox چالان کړئ او کوډ وچلوئ

دا د 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)

تاسو به د sandbox پېژند (sb_ او نور ۲۴ توري) او بیا 0 3.12.x وګورئ. sandbox شاوخوا په یوه ثانیه کې چالان شو، کوډ یې وچلاوه، او کله چې د with بلاک پای ته ورسېد ړنګ شو.

د پایلې په اړه د پوهېدو وړ خبرې:

  • کله چې د وتلو کوډ 0 وي او کمانډ خپلې وخت پولې ته نه وي رسېدلی، r.ok true وي؛
  • غیر صفري د وتلو کوډ استثنا نه ده، نو r.ok پخپله وګورئ؛
  • stdout او stderr هر یو تر 1 MiB محدود دي، او r.truncated درته وايي چې پایله پرې شوې که نه.

۴. کڅوړه نصب کړئ او د shell کمانډونه وچلوئ

د sandbox دننه تاسو د یو کوچني Linux سیسټم root یاست چې 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

ډیفالټ وخت پوله ۳۰ ثانیې ده، او یو همغږی غږ تر ډېره ۵۵ ثانیې دوام کوي. لوی نصبونه په یوه شالید دنده کې وچلوئ (ګام ۶).

۵. فایلونه ننباسئ او راوباسئ

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

لارې باید بشپړې (absolute) وي. یو لېږد تر 5 MB محدود دی؛ download بایټونه راګرځوي، download_text متن.

۶. اوږده دنده په شالید کې وچلوئ

background=True ورکړئ او د انتظار پر ځای سمدستي یوه دنده ترلاسه کوئ. د ۵۵ ثانیو پوله نه لري:

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() هرې ۲ ثانیې ګوري او نوې پایله چې راشي سمدستي یې چاپوي. تاسو کولی شئ پخپله task.logs() هم وغږوئ، یا د درولو لپاره task.kill(). تر هغه چې دنده چلېږي، sandbox د بېکارۍ له امله نه ړنګېږي.

دې څومره لګښت درلود

پورته هر with بلاک یو څو ثانیې ژوندی و او د لږ تر لږه ۶۰ ثانیو له مخې بل شو. په small کې دا د هر بلاک $0.00055 کېږي، نو ټولې پنځه بېلګې یوځای شاوخوا د سنټ درېیمه برخه کېږي. د ټولو تعرفو بیې، دایمي حالت او د لګښت پولې په د sandbox پولې او بلینګ کې دي.

کله چې څه خراب شي

د 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 ځوابونه تر درې ځلو بیا هڅه کوي. ټول ۱۱ د تېروتنې ټولګي په د SDK لارښود کې دي.

راتلونکي ګامونه

پوښتنې

ایا د ازموینې لپاره بانکي کارت ته اړتیا ده؟

نه. نوی حساب کله چې لومړی ځل پرته له کافي بیلانس sandbox جوړوي، د sandbox لپاره $1 کریډیټ ترلاسه کوي. دا ټول لارښود ترې له یوه سنټ ډېر لږ لګوي. له هغه وروسته بیلانس په crypto ډکوئ.

ایا د sandbox دننه په pip کڅوړې نصبولی شم؟

هو. sandboxونه بهرني انټرنیټ ته لاسرسی لري، او pip پرته له virtualenv سیسټم ته نصبوي. درنې کڅوړې لکه torch ډېرې ډیسک او حافظې ته اړتیا لري، نو plus یا لویه تعرفه واخلئ.

ولې مې کمانډ له ۳۰ ثانیو وروسته ودرېږي؟

د run او exec ډیفالټ وخت پوله ۳۰ ثانیې ده، او د همغږي غږ تر ټولو لوړه پوله ۵۵ ثانیې. هر څه چې اوږد وي، له background=True سره یې وچلوئ چې دا پوله نه لري.

که سکرېپټ مې ودرېږي، ایا sandbox ړنګېږي؟

د with بلاک سره هو: کله چې بلاک پای ته ورسېږي sandbox ړنګېږي، حتی له استثنا وروسته. له دې پرته، لنډمهاله sandbox له ۵ دقیقو بېکارۍ وروسته ړنګېږي، او د هماغو دقیقو پیسې هم ورکوئ.

تبصرې

لا تبصرې نشته. لومړی اوسئ.

یوه تبصره پریږدئ

تبصرې د ښکاره کیدو مخکې اعتدال کیږي.