用途:本技能用于把基于 Modal(modal SDK)的云沙箱代码迁移到 Blaxel(TypeScript 用 @blaxel/core,Python 用 blaxel),提供两套 SDK 的 API 对照与改写方式。
主要能力:覆盖包替换、认证、沙箱创建、参数映射、命令执行、长驻进程、日志流、密钥与镜像构建等迁移要点。
包替换:TypeScript 执行 npm uninstall modal 与 npm install @blaxel/core;Python 执行 pip uninstall modal 与 pip install blaxel。
认证:Modal 用 MODAL_TOKEN_ID 与 MODAL_TOKEN_SECRET,或 modal setup;Blaxel 用 BL_WORKSPACE 与 BL_API_KEY,或 bl login YOUR-WORKSPACE,登录后自动认证,无需管理令牌对。
沙箱创建:Modal 需先建客户端、App、镜像再创建沙箱;Blaxel 用单个静态方法 SandboxInstance.createIfNotExists(Python 为 create_if_not_exists),传入 name、image、region、memory、ports、envs 等。CPU 无需指定(按内存自动分配),超时用 ttl,空闲用自动缩容到零。
命令执行:Modal 用 sandbox.exec(['bash','-c',...]) 并读取 stdout/stderr 流;Blaxel 用 sandbox.process.exec,原生支持 workingDir/working_dir、env、waitForCompletion/wait_for_completion,长驻进程可用 name 加 waitForPorts 后台运行,再用 process.kill 结束。
日志:Blaxel 通过 onLog/onStdout/onStderr 回调、streamLogs/stream_logs 或 process.logs 获取输出。
密钥:Modal 用 vault 式 Secret;Blaxel 用环境变量并加 secret: true 标记,无 vault 式 API。
镜像:Modal 以 SDK 链式方法编程构建镜像;Blaxel 用标准 Dockerfile 模板,经 bl new sandbox my-template 创建、编辑 Dockerfile 后 bl deploy 部署,再以镜像名引用。
限制:Blaxel 沙箱不支持 GPU、不支持 stdin 写入与 pty 模式、无网络阻断与 CIDR 白名单、无云存储桶挂载、无 HTTP/2 端口配置,创建时也不支持直接指定入口命令,需创建后立即 exec。资料未提供收费与价格信息。