@ blaxel/ eve- sandbox (英语)
运行前夕的内置外壳和文件工具 安全,耐用 Blaxel 沙盒。 每个耐久的前夕会话在应用程序重启后重新连接到同一个沙盒上,而不依赖于仅预览的Blaxel API.
快开始
你需要节点24或晚点 和一个现有的 前夕的项目。 。 。 .
1. 安装后端
npm install @blaxel/eve-sandbox
包裹预计 eve 财务报告和审定财务报表 ai 版本已经由您的 even 工程安装 .
2. Blaxel认证
就当地发展而言,请与 布莱克塞尔CLI数字 :
bl login YOUR-WORKSPACE
在CI和制作中,提供 BL_WORKSPACE 财务报告和审定财务报表 BL_API_KEY 到应用程序运行时间。 不要把这些证书复制到沙盒里.
3. 在前夕选择Blaxel
// agent/sandbox.ts
import { blaxel } from "@blaxel/eve-sandbox";
import { defineSandbox } from "eve/sandbox";
export default defineSandbox({
backend: blaxel({
image: "blaxel/ts-app:latest",
lifecycle: {
expirationPolicies: [{ type: "ttl-idle", value: "1d", action: "delete" }],
},
memory: 4096,
}),
async onSession({ use }) {
const sandbox = await use({
networkPolicy: { allow: ["github.com", "*.npmjs.org"] },
});
await sandbox.run({ command: "mkdir -p /workspace/project" });
},
});
照常开始前夕 :
npm run dev
内置 bash, (中文(简体) ), read_file, (中文(简体) ), write_file, (中文(简体) ), glob,以及 grep 工具现在运行在Brlaxel沙盒内。 要在夕阳的终端UI中抽取测试设置,请代理创建 /workspace/hello.txt 然后读回来.
可在 examples/agent/sandbox.ts。 。 。 .
何谓有效
- 所有五个内置的夜之沙盒工具
- 屏蔽命令和流出背景进程
- 文本、 二进制和流文件操作
- 持久文件系统和程序状态跨回合和应用程序重新启动
- 自定义银河图像、区域、资源、数量、环境变量和生命周期政策
- 通过届会设置
onSession() - 域外政策和暗后页眉转换
- 通过 Eight 抓取的会话元数据决定重联
现有一般能力范围
后端有意只使用一般可用的Brlaxel sandbox API. 它不叫Blaxel快照或叉式API.
节日 bootstrap() 钩子和下面的文件 agent/sandbox/workspace 需要一个后端来复制一个构建时间模板。 此后端不执行模板预热 。 如果配置了任一特性,则在为流量服务前会以可操作的引导失败.
将可重复使用的系统依赖性和基础文件放入 a 自定义 Blaxel 图像设置每个持久前夕必须运行一次 onSession()。 。 。 .
生命周期
create()用名称重新连接所保存的沙盒或从所配置的图像创建新的沙盒.onSession()为新的持久前夕会议进行一次性设置.- 会话名称包括后端配置身份,因此被更改的沙盒定义会得到一个新的沙盒.
captureState()将Blaxel沙盒的名字 持续在持续会话状态.shutdown()关闭活动日志流。 然后将闲置的沙盒移动到备用状态,同时保存内存,过程,和文件.
会话发现使用Blaxel资源,并不依赖于进程内注册.
网络政策
后端支持:
"allow-all""deny-all"- 域允许列表
- 夕发头通过Blaxel的秘密后卫Egress代理进行转换
后端拒绝子网规则,请求匹配条件,以及 forwardURL它不会默默地削弱得不到支持的政策.
默认是 "allow-all"。对于生产或不可信的工作量,选择 "deny-all" 或第一个命令运行前的明确允许列表.
选项
blaxel() 接受标准 SandboxCreateConfiguration 字段,例如 image, (中文(简体) ), memory, (中文(简体) ), region, (中文(简体) ), ports, (中文(简体) ), envs, (中文(简体) ), volumes, (中文(简体) ), ttl, (中文(简体) ), lifecycle,以及 labels。 。 。 .
| 选项 | 目的 | 默认 |
|---|---|---|
backendName | 稳定后端标识符 | blaxel |
namePrefix | 确定性Blaxel资源前缀 | eve |
networkPolicy | 创建会话沙盒时应用的 Egress 策略 | "allow-all" |
processOutputBufferBytes | 每个进程流的最大未读 stdout 或 stderr | 1个小米B |
startupTimeoutMs | 最大冷象准备等待 | 60秒钟 |
兼容性
| 软件包 | 夜 间 | AI SDK 软件 | 节点.js | 默认图像 |
|---|---|---|---|---|
@blaxel/eve-sandbox 0.2.x (中文(简体) ) | 0.31.3至0.32以下 | 7.0.38至8岁以下 | 24岁或以后 | blaxel/ts-app:latest |
每次发布都必须通过适配器合同套件,以及一次针对其申报范围的直播前夕代理评估. 新前夕的未成年人需要经过测试的对等距离更新.
清理
Blaxel沙盒在它们配置的生命周期被移除之前,一直保持耐用. 设定 lifecycle 或者说 ttl 当应用程序需要自动删除不活动会话时.