用途:Deno Sandboxes 用于在安全隔离环境中运行不可信代码,适用于用户提交代码、AI 生成代码执行、代码演练场、多租户代码执行和隔离自动化测试。每个沙箱运行在独立 Linux microVM(Firecracker,与 AWS Lambda 同技术)中,拥有独立文件系统、网络和进程空间。
主要能力:通过 @deno/sandbox SDK 创建沙箱、执行命令、读写文件、流式 I/O、终止进程。默认资源为 2 vCPU、512MB 内存、10GB 磁盘,启动时间低于 200ms。沙箱内置 Deno 运行时、完整 Linux 环境、可限制的网络访问和临时文件系统。安全特性包括 microVM 隔离、独立内核、无宿主访问、可控制出站连接。
使用方式:安装命令为 deno add jsr:@deno/sandbox。创建沙箱必须使用 await using 自动释放:await using sandbox = await Sandbox.create()。运行命令用 sandbox.spawn("cmd", { args: [...] }),获取输出用 await child.output(),写文件用 await sandbox.fs.writeFile(path, content),终止进程用 await child.kill()。可部署到 Deno Deploy:deno deploy --prod。完整 API 可运行 deno doc jsr:@deno/sandbox 查看。
限制与注意:本技能仅适用于 @deno/sandbox 相关问题,不应用于 Docker、Node.js vm2/vm、Web Workers、AWS Lambda 等其他隔离技术。不要给不可信代码过多权限,应使用 --allow-none 或按需 --allow-net;需为进程设置超时;必须管道 stdout/stderr 才能捕获输出;不要直接信任沙箱输出,应作为数据解析校验。具体收费与价格暂未提供。