コードを1回だけ実行する
結果だけが欲しいときはkumoba runを使います。サンドボックスを作ってコマンドを1つ実行し、出力を表示してからサンドボックスを削除します。何も残りません。
始める前に、kumobaをインストールしてkumobadを起動しておきます。
コマンドを実行します:
shkumoba run -- python3 -c 'print("hello from a fresh VM")'--より後ろがプログラムと引数です。python3のようなコマンド名は、ゲストのPATHから探されます。終了ステータスを確認します。
kumoba runはコマンド自身の終了ステータスで終わるので、スクリプトやエージェントで分岐に使えます:shkumoba run -- sh -c 'exit 7'; echo $? # 7
ネットワークなしで実行する
デフォルトではサンドボックスからインターネットに接続できます。信頼できないコードをネットワークなしで実行するには:
sh
kumoba run --network.mode blocked -- python3 untrusted.py特定のホストだけを許可するには、ホストを並べます。*.example.comはサブドメインにも一致します:
sh
kumoba run --network.mode allowlist --network.hosts example.com -- curl -sS https://example.com時間とリソースを制限する
sh
kumoba run --timeout-ms 30000 --cpu 1 --memory-mib 1024 -- python3 job.pyタイムアウトを過ぎたコマンドは停止され、kumoba runは終了ステータス124で終わります。
コードから使う
ts
import { Kumoba } from "kumoba";
const result = await new Kumoba().run("python3 --version");
console.log(result.exitCode, result.stdout);