Saltu al la enhavo
Reen al Nymbot

Sciobazo Kodo

Ruliigi kondon sur servilo

Kiam kodo bezonas pli ol via aparato povas doni al ĝi — alian lingvon, paketojn el interreto, pli da tempo — Nymbot povas ruli ĝin sur servilo de ĝi mem, en konteŭnero farita por tiu unuiga kuro.

Kio estas servoraĵo?

Servera ekzekutigo komencas freŝan kontejneron, metas vian kodon en ĝin, rulinas ĝin, sendas reen tion kion ĝi presis kaj detruas la kontejneron. Vi vidas la plej altan eblan koston antaŭ ol ĝi komenciĝas, kaj vi pagas el via Pro ekvilibro dum la tempo, kiam ĝi efektive kuris.

Estas du manieroj en: Rulu en la servilo en koda bloko, kaj la servilo rulas tion kiun Nymbot petas dum ĝi laboras en a deponejo.

Por rapida Python aŭ JavaScript, kiu ne bezonas ion el la interreto, la senpaga sablando sur via aparato kutime sufiĉas.

Rualiĝante koda blokon

Python, JavaScript, TypeScript, shell, Go, Rust, Java kaj Dart kodblokoj en respondo havas Rulu en la servilo butono, kiam ajn la servilo funkcias, estas disponebla. Ĝi malfermas listoĵeton montrante:

  • la bildo la kodo funkcios sur,
  • limdato por elekti: 1, 5 aŭ 15 minutojn,
  • la plej alta kosto de la kuro, en Pro-kreditoj, por tiu limtempigo,
  • kaj, se la babilejo havas aligitajn dosierojn, kesto por inkludi ilin. Ili ias nur se vi markas ĝin.

Premu Kursu kaj la eligo fluas en sub la koda bloketo kiam ĝi alvenas: kion ĝi presis, la terminiga kodo, kiom longe ĝi funkciis, ajn dosierojn ĝi skribis (ĉiu kun a Konservu butono), kaj kion oni pagis por ĝi.

Stopu finas la kurojn ĉe iu ajn punkto. La servilo estas malŝaltita tuj kaj vi pagas nur por la tempo, kiam ĝi funkciis. Se ĝi ĉesis antaŭ ol la servilo komenciĝis, ĝi kostas nenion.

En unu Anonima Modo ĉat la kuro estas pagita el la Pro-kreditoj de la provizora ŝlosilo, kaj aldonitaj dosieroj neniam estas inkluditaj.

Lingvojoj kaj bildoj

Ĉiu lingvo funkcias sur imago, pretfarita sistemo kun la iloj, kiujn tiu lingvo bezonas. Plej grandaj imagoj funkcias sur pli grandaj serviloj kaj kostas pli per minuto.

BildoUzata porKion ĝi enhavas서버
PitonoPitonoPython 3.12 kun pip, venv, konstruiloj kaj git; numpy, pandas kaj pytest jam instalitaj0,5 CPU, 4 GB memoro
Node.jsJavaScript, TypeScriptNode.js 22 kun npm, pnpm kaj yarn, plus Python 3, make kaj C++ kompililo0,5 CPU, 4 GB memoro
PoliglotoShell, Go, Rust, Javabash, C kaj C++ konstruiloj, Python 3, Node.js, Go, Rust kun cargo, kaj Java 171 CPU, 6 GB memoro
FlutterDartoFlutter 3.32 kaj Dart2 CPU-oj, 8 GB memoro

Kiom ĝi kostas

Servera tempo estas fakturata en paŝoj de 10 sekundoj, de la peto pri la servilo ĝis ĝia malŝaltado, kun 10 sekundoj kiel la minimuma kosto de unu kuro. La tarifo estas tio, kion la servilo de tiu grandeco kostas al Nymbot, plus marginon, konvertite al Pro-kreditoj laŭ la nuna Bitcoin-prezo.

  • La prezo estas montrita antaŭe, kiel maksimumo. Ĝi estas la tuta limtempo laŭ tiu tarifo. Vi neniam estas pagata pli, kaj kuro kiu finiĝas frue kostas malpli.
  • La maksimumo estas tenata dum la kuro daŭras. Kiam ĝi finiĝas, la reala ŝarĝo estas prenta kaj la restanto estas liberigita.
  • Kurado, kiu malsukcesas komenci, estas senpaga.
  • Elspeklimoj aplikas. Kurado, kiu povus iam pruvi preter de ĉatado elspeccapo demandas unue, tiel kiel respondo faras.

Ĉar la prezo sekvas la Bitcoin-prezon, ĝi povas ŝanĝiĝi inter la momento kiam vi vidas ĝin kaj la momento kiam vi premas Run. Se ĝi altiĝis, nenio funkcias: la folio malfermiĝas denove kun la nova prezo por ke vi kontrolu ĝin.

Servo kuras en deponejo

En babilego kun alia deponejo konekta, la Servero funkcias chip lasu Nymbot peti ekzekuti komandojn kontraŭ via kodo, ekzemple instali la dependencojn kaj ruli la testojn post ŝanĝo. Ĝi estas malŝaltita ĝis vi ŝaltas ĝin, laŭ la babilejo.

Ĉiufoje kiam la modelo volas ruli ion, la respondo haltas kaj montras karton kun la bildo, la plenan komandon, la temlimon kaj la maksimuman koston, krome kiun depozitorion kiam la ĉato havas plurajn. Nio ruliĝas ĝis vi respondas:

  • Permetu unufoje ekzekutas tiun unu komandon. Ĝi ekzekutas kontraŭ la depozitorio kun la redaktoj, kiujn la respondo faris ĝis nun, kaj la modelo ricevas la eliraj kodon, la finon de la eligo kaj la liston de dosieroj, kiujn la komando ŝanĝis. Poste la respondo daŭrigas.
  • Malsaccepti kurigas nenion kaj kostas nenion. La respondo daŭras sen ĝi.

Ĉiu kuro demandas. Ĉiu el ili estas separate pagata de la respondo, kaj la respondo listigas la kurojn kiujn ĝi faris kaj kion ĉiu kostis. Se kuro povus iam iam transiri la koncernan babilejon elspeccapo, ĝi estas rifuzata antaŭ ol oni petas vin.

Dosieroj, kiujn komando ŝanĝas en la servilo, restas tie kaj estas forĵetitaj kune kun la kontejnero. Ili ne estas skribitaj en vian depozitorion. Ŝanĝoj al la depozitorio venas nur el la propraj redaktoj de la respondo.

Kio estas izolita

  • Freŝa kontejnero por ĉiu provo. Nenio estas partumata kun alia kuro aŭ alia persono, kaj la kontejnero estas detruita kiam la kuro finiĝas,
  • Neniu interreto krom paketregistroj. La kontejnero povas elŝuti el la lokoj, el kiuj venas paketoj: PyPI, npm kaj yarn, pub.dev kaj Google-stoko por Flutter kaj Dart, la Go-modula proksio, crates.io, Maven Central, kaj GitHub por git- dependencoj kaj elŝutoj de versioj. Ĝi povas nur elŝuti. Ĝi ne povas sendi ion ajn al ili aŭ atingi ajnan alian adreson.
  • Nur tio, kion vi elektis, eniras. La kodo, la dosieroj kiujn vi inkluzivis, aŭ la dosieroj de la depozitorio. Viaj ŝlosiloj, via git-tokeno kaj viaj babiladoj neniam eniras la kontejanon.
  • Rezulto estas traktata kiel nefidinda. En deponejo, tio kion kuro presas estas montrita al la modelo markita kiel eksteraj datumoj, kaj al ĝi estas dirite neniam sekvi instrukciojn uvaj en ĝi.

Limitoj

  • Unu servilo funkcias samtempe por ĉiu ŝlosilo. Komencado de dua dum la unua ankoraŭ funkcias estas malpermesita.
  • Tempaj limigoj de 1, 5 aŭ 15 minutoj por koda bloko. Repozitorium-rulado povas peti ĝis 15 minutojn, aŭ 20 ĉe la Flutter-imago.
  • Ĝis 1 MB da kodo, kaj ĝis 200 aliĝintaj dosieroj sumante 20 MB.
  • Repoziitorio de ĝis 60 MB, pakita.
  • Ĝis 256 KB da eligo. Ĉio post tio estas forigita, kaj la kuro diras tion.
  • Ĝis 200 dosieroj, 8 MB entute, remajtita por konservi.

Serveroj povas esti malŝaltitaj por prizorgado, kiel tutaĵo aŭ unu imagonfoje. Kiam ili estas malŝaltitaj, la Rulu en la servilo la butono kaj la ĉipo ne estas montritaj.

La Task-paneo

En repoza ĉatilo, la kontrollisto-butono ĉe la supro de la ĉatilo malfermas ĝian Taskoj Panele. Ĝi listigas kion ĉiu turnon faris, la plej novan unue: la dosierojn ĝi legis kaj redaktis, komitaton, ŝanĝojn preparitajn por via revizio, kaj ĉiun servon funkciigitan kun sia komando, bildo, tempo, kosto kaj elira stato. Servofunkcigado atendanta vian aprobon povas esti permesita aŭ rifuzita el la panelo, same kiel el ĝia karto, kaj kuranta respondo povas esti ĉesigita tie. La skizo restas kun la babilejo post kiam la laboro finiĝas.