Quickstarty

Quickstart: Workers

Wdróż kontener z szablonu galerii i uruchom zadanie.

Workers uruchamiają ciężkie lub długie obciążenia (Python, Node, Go, Dockerfile) w izolowanych kontenerach.

Zmienne w przykładach: $HOSTBASE_TOKEN (token dostępu), $REF (ref projektu). SDK: @hostbase/management (TypeScript) i hostbase_management (Python), pełne API: /docs/api.

1. Wdróż z szablonu

Galeria ma ponad 30 szablonów.

curl -X POST https://host.ulewicz.space/api/v1/projects/$REF/workers/from-template -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" \
  -d '{"template":"hono-bun-api","name":"api"}'
await hb.deployWorkerFromTemplate({ ref, body: { template: "hono-bun-api", name: "api" } });
hb.deploy_worker_from_template(ref=ref, body={"template": "hono-bun-api", "name": "api"})
hostbase workers templates
hostbase workers deploy-template hono-bun-api --name api

2. Skalowanie

Scale-to-zero i autoskalowanie w granicach min/max.

curl -X PUT https://host.ulewicz.space/api/v1/projects/$REF/workers/api/scaling -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"min":0,"max":3,"auto":true}'
await hb.setWorkerScaling({ ref, name: "api", body: { min: 0, max: 3, auto: true } });
hb.set_worker_scaling(ref=ref, name="api", body={"min": 0, "max": 3, "auto": True})

3. Zadanie jednorazowe

Ten sam obraz, własna komenda i limit czasu.

curl -X POST https://host.ulewicz.space/api/v1/projects/$REF/workers/api/jobs -H "Authorization: Bearer $HOSTBASE_TOKEN" -H "Content-Type: application/json" -d '{"command":"bun","args":["run","report.ts"],"timeout_s":600}'
const job = await hb.runWorkerJob({ ref, name: "api", body: { command: "bun", args: ["run", "report.ts"], timeout_s: 600 } as never });
hb.run_worker_job(ref=ref, name="api", body={"command": "bun", "args": ["run", "report.ts"], "timeout_s": 600})

Dalej: /docs/workers.