后端与接口
在 Cloudflare Sandbox…
适用于基于 @cloudflare/sandbox 稳定包(非 @next)开发和维护 Cloudflare Sandbox 应用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
在 Cloudflare Sandbox特定
解决思路
- 优先查阅主 Sandbox 文档和已安装的稳定类型,不要凭记忆;把此技能当作 gate、contract 和检索地图,而不是完整手册。
- 现有应用可以留在稳定包并继续发布。
- 推荐新项目使用 `@cloudflare/sandbox@next` 和 `sandbox-next`;条件允许时用 `sandbox-migrate-to-next` 规划迁移,为 1.0 成为稳定版做准备;除非用户要求,不要强制移植。
- 写代码前检查 app 的 npm dependency:必须是默认 `@cloudflare/sandbox`,不能是 `@next` 或 preview tags。
- 写代码前检查 Container image:必须匹配稳定镜像,不能是 `cloudflare/sandbox:next`。
- 如果发现 `@cloudflare/sandbox@next` 或 `next` 镜像,停止,加载 `sandbox-next`。
- 如果用户想移植到 1.0 / `@next`,停止,加载 `sandbox-migrate-to-next`;不要在稳定包上只应用一半预览 API。
- 如果只是清理已弃用的稳定 API,留在当前技能,使用 2026 deprecation guide;这不是迁移到 `@next`。
- 绝不混用稳定 Worker 包与 `@next` 容器镜像(或反向)。
- 安装 skills:参考 Agent setup 和 cloudflare/skills。
- `await sandbox.exec(command)` 接收命令字符串,并在命令完成时 resolve,返回缓冲的 `stdout` / `stderr` / `exitCode` 及相关字段。
- 长时间运行和流式工作使用稳定命令 API(`startProcess`、`execStream` 及相关 helpers),而不是 `@next` 单 handle 模型;打开 Commands 文档,不要在稳定版上发明 `@next` 的 `output()` handles。
- 当状态需要跨命令/调用保留时,使用 Sessions 保留工作目录和环境(default session / `enableDefaultSession`、`createSession`);查看 Sessions 文档。
- 交互式浏览器终端通常使用 `sandbox.terminal(request)` 和 session/xterm helpers(稳定版),除非包是 `@next`,否则不要用预览的 `createTerminal`。
- 使用 tunnels 或大/二进制流时优先使用 RPC transport;HTTP/WebSocket transports 已弃用(见下方清理指南)。
- Files、mounts、ports、tunnels、backups、lifecycle 和 interpreter 使用主文档查签名;信任已安装的稳定类型。
- 非秘密配置放在 sandbox env;实时凭据放在 Worker。当进程调用外部 API 时使用 outbound handlers。
- 当使用那些 URL 模式时,生产预览主机名需要在自定义域名上配置 wildcard DNS。
- 当依赖仍是稳定版时,不要应用 `@next` 的 argv / `process.output()` API。
- 自部署 bridge 保持在稳定包和镜像上;参考 Bridge 文档。
- 使用最小形态:`import { getSandbox, proxyToSandbox, Sandbox } from '@cloudflare/sandbox';` `export { Sandbox };` `const sandbox = getSandbox(env.Sandbox, 'user-123');` `const result = await sandbox.exec('python3 -c "print(2 + 2)"');` 然后查看 `result.stdout`、`result.exitCode`、`result.success`。
- 实现前先获取页面;已安装的稳定类型优先于猜测。
- 需要 orient 时,打开 Sandbox overview。
- 需要第一个 Worker、template、Docker 时,打开 Get started。
- 需要 `exec`、streaming、background processes 时,打开 Commands API、Execute commands、Background processes、Streaming output。
- 需要 Sessions / shell state across commands 时,打开 Sessions concept、Sessions API。
- 需要 `getSandbox` options、sleep、destroy 时,打开 Lifecycle API、Sandbox options。
- 需要 Env vars 时,打开 Environment variables。
- 需要 Files 时,打开 Files API、Manage files、File watching。
- 需要 Buckets / mounts 时,打开 Storage API、Mount buckets。
- 需要 Backups 时,打开 Backups API、Backup and restore。
- 需要 Ports、preview URLs、expose 时,打开 Ports API、Expose services。
- 需要 Tunnels 时,打开 Tunnels API。
- 需要 Proxy / Workers connections 时,打开 Proxy requests、Workers connections。
- 需要 Browser / PTY terminal 时,打开 Terminal API、Terminal concept、Browser terminals。
- 需要 Code interpreter 时,打开 Interpreter API、Code execution。
- 需要 Git in the sandbox 时,打开 Git workflows。
- 需要 Secrets / egress 时,打开 Outbound traffic。
- 需要 WebSockets 时,打开 WebSocket connections。
- 需要 Docker-in-Docker 时,打开 Docker in Docker。
- 需要 Production deploy 时,打开 Production deployment。
- 需要 Containers concept 时,打开 Containers。
- 需要 How-to index 时,打开 Guides。
- 需要 API index 时,打开 API reference。
- 需要在保持 stable 时处理 Deprecated APIs 时,打开 2026 deprecation guide。
- 需要 Self-deployed bridge 时,打开 Bridge、Bridge HTTP API。
- 需要 Examples(stable/main)时,打开 examples on GitHub。
- 需要 New work on 1.0 preview 时,使用 `sandbox-next` 并打开 1.0 preview。
- 需要 Port existing app to `@next` 时,使用 `sandbox-migrate-to-next` 并打开 Migrate。
- 清理已弃用 API 时,先更新 package + matching image,然后遵循指南。
- 典型搜索:`rg 'SANDBOX_TRANSPORT|transport:|exposePort\(|enableDefaultSession|execStream\(|readFileStream|writeFileStream'`。
- 此路径不会切换到 `@next`。
- 发布前确认 Worker package 和 container image 在同一稳定线上。
- 发布前针对已安装的稳定类型进行 typecheck。
- 发布前确认 sandbox env 中无 live secrets。
- 如果使用已弃用 transports/helpers,完成或跟踪 2026 deprecation 清理。
- 当团队准备好 1.0 时,使用 `sandbox-migrate-to-next`;不要未经提示强制切换。
适用边界 · 注意事项
- 不适用于在 `@cloudflare/sandbox@next` 预览包上开发或维护应用;应使用 `sandbox-next`。
- 不适用于将现有稳定版应用移植到 `@next` / 1.0;应使用 `sandbox-migrate-to-next`。
- 不适用于不依赖 Cloudflare Sandbox / Cloudflare Containers 的项目。