−25%

በWindows ዓመታዊ ክፍያ ላይ፣ እስከ ኦክቶበር 31። ዕቅዶችን ይመልከቱ

EQVPS
ጀምር

በ5 ደቂቃ ውስጥ ለsandbox የPython SDK፦ ከpip install eqvps እስከ መጀመሪያው ሩጫ

የEQVPS Python SDKን ይጫኑ፣ የFirecracker sandbox ያስነሱ፣ ኮድ ያሂዱ፣ ጥቅል ይጫኑ፣ ፋይሎችን ያስተላልፉ እና ረጅም ስራን በጀርባ ያሂዱ። ሁሉም ትዕዛዞች ያሉት ስድስት ደረጃ፣ እና አጠቃላይ ወጪው ከአንድ ሳንቲም በታች።

ይህ መመሪያ ከዜሮ ተነስቶ በPython የሚሰራ sandbox ድረስ ያደርስዎታል። የተገለለ የFirecracker microVM ያስነሳሉ፣ በውስጡ ኮድ ያሂዳሉ፣ ጥቅል ይጭናሉ፣ ፋይልን ያስገባሉ እና ያወጣሉ፣ ረጅም ነገርንም በጀርባ ያሂዳሉ። እያንዳንዱ ደረጃ የሚለጥፏቸው ጥቂት መስመሮች ናቸው።

Python 3.8 ወይም አዲስ እና የEQVPS መለያ ያስፈልግዎታል። SDK ምንም ጥገኝነት የለውም።

1. ቶከን ያግኙ

sandboxዎች የሚከፈሉት ከመለያው ቀሪ ሒሳብ ስለሆነ SDK የመለያ ቶከን ያስፈልገዋል። የመለያዎን ማገናኘት ገጽ ቶከኑን የሚያገኙባቸውን ሶስት መንገዶች ያሳያል፦ ዳሽቦርድ፣ API ወይም MCP አገልጋይ። ከዚያ በአካባቢ ተለዋዋጭ ውስጥ ያስቀምጡት፦

export EQVPS_API_KEY="your-token"

ገና ቀሪ ሒሳብ የለዎትም? ችግር የለም። አዲስ መለያ በቂ ቀሪ ሒሳብ ሳይኖረው መጀመሪያ sandbox ሲፈጥር ለ14 ቀናት የሚያገለግል $1 የsandbox ክሬዲት ያገኛል።

2. SDKን ይጫኑ

pip install eqvps

3. 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_ እና ተጨማሪ 24 ቁምፊዎች)፣ ከዚያም 0 3.12.x ያያሉ። sandbox በአንድ ሰከንድ ገደማ ተነሳ፣ ኮዱን አሄደ፣ እና የwith ብሎኩ ሲያልቅ ተሰረዘ።

ስለ ውጤቱ ማወቅ ያለብዎት፦

  • የመውጫ ኮዱ 0 ሲሆን እና ትዕዛዙ የጊዜ ገደቡ ላይ ካልደረሰ r.ok true ይሆናል፤
  • ዜሮ ያልሆነ የመውጫ ኮድ ልዩ ሁኔታ አይደለም፣ ስለዚህ r.okን እራስዎ ይፈትሹ፤
  • stdout እና stderr እያንዳንዳቸው እስከ 1 MiB የተገደቡ ናቸው፣ ውጤቱ ተቆርጦ እንደሆነ r.truncated ይነግርዎታል።

4. ጥቅል ይጫኑ እና የshell ትዕዛዞችን ያሂዱ

በsandbox ውስጥ Python፣ Node.js፣ git እና curl ያለው የአንድ ትንሽ Linux ስርዓት root ነዎት። 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

ዱካዎች ፍፁም (absolute) መሆን አለባቸው። አንድ ዝውውር በ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()ን መጠቀም ይችላሉ። ተግባር እስከሚሮጥ ድረስ sandbox በእንቅስቃሴ-አልባነት ምክንያት አይሰረዝም።

ምን ያህል ወጣ

ከላይ ያለው እያንዳንዱ የwith ብሎክ ጥቂት ሰከንዶች ብቻ ቆይቶ በዝቅተኛው 60 ሰከንድ ተከፍሎበታል። በ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 ምላሾችን እስከ ሶስት ጊዜ በራሱ ደግሞ ይሞክራል። 11ዱም የስህተት ክፍሎች በየSDK ማጣቀሻ ውስጥ ተዘርዝረዋል።

ቀጣይ ደረጃዎች

FAQ

ለመሞከር ካርድ ያስፈልገኛል?

አያስፈልግም። አዲስ መለያ በቂ ቀሪ ሒሳብ ሳይኖረው መጀመሪያ sandbox ሲፈጥር ለsandbox $1 ክሬዲት ያገኛል። ይህ ሙሉ መመሪያ ከዚያ ከአንድ ሳንቲም በጣም ያነሰ ይጠቀማል። ከዚያ በኋላ ቀሪ ሒሳቡን በክሪፕቶ ይሞላሉ።

በsandbox ውስጥ በpip ጥቅሎችን መጫን እችላለሁ?

አዎ። sandboxዎች ወደ ውጭ የኢንተርኔት ግንኙነት አላቸው፣ pip ደግሞ ያለ virtualenv ወደ ስርዓቱ ይጭናል። እንደ torch ያሉ ከባድ ጥቅሎች ተጨማሪ ዲስክ እና ማህደረ ትውስታ ስለሚፈልጉ plus ወይም ትልቅ ታሪፍ ይምረጡ።

ትዕዛዜ ከ30 ሰከንድ በኋላ ለምን ይቆማል?

የrun እና exec ነባሪ የጊዜ ገደብ 30 ሰከንድ ሲሆን የተመሳሰለ ጥሪ ከፍተኛው 55 ነው። ከዚህ የሚረዝም ማንኛውንም ነገር ይህ ገደብ በሌለው background=True ያሂዱ።

ስክሪፕቴ ቢወድቅ sandbox ይሰረዛል?

በwith ብሎክ አዎ፦ ብሎኩ ሲያልቅ sandbox ይሰረዛል፣ ከልዩ ሁኔታ (exception) በኋላም ቢሆን። ያለሱ ጊዜያዊ sandbox ከ5 ደቂቃ እንቅስቃሴ-አልባነት በኋላ ይሰረዛል፣ ለእነዚያ ደቂቃዎችም ይከፍላሉ።

አስተያየቶች

እስካሁን አስተያየቶች የሉም። መጀመሪያ ይሁኑ።

አስተያየት ይተዉ

አስተያየቶች ከመታየታቸው በፊት ይጣራሉ።