并发不够,怎么办?
先确认限制来自 Sandbox 并发、模板构建并发、账号配额、地域资源,还是业务系统自己的限流。
不要在在线请求中实时构建模板。批量任务应设置队列、并发上限、超时和退避重试。需要更高配额时,通过函数计算控制台或阿里云支持渠道申请。
暂停的 Sandbox 是否占用并发或计费?
暂停不等于免费或释放资源。按当前按量付费规则,深休眠不收取 vCPU 和内存费用,但仍按深休眠磁盘占用量收费;浅休眠不收取 vCPU 费用,但仍收取内存和磁盘费用,且只对 Pro 计划开放。销毁后才不再产生云沙箱实例费用。
现有文档未定义暂停状态是否占用 Sandbox 并发配额。需要以账号实际配额或支持渠道确认,不能把暂停当作释放并发资源。任务还要继续时可以使用暂停/恢复保持现场;任务已经结束时应 kill() 释放资源。
为什么要主动释放 Sandbox?
Sandbox 会占用计算、内存、磁盘、端口和并发资源。主动释放能降低成本,也能避免后台进程继续运行造成安全风险。
所有成功、失败、超时、取消路径都应该进入清理逻辑。
如何降低重复初始化成本?
把稳定依赖放进模板,把任务输入放到运行时。不要每次创建 Sandbox 后重新安装大型依赖。
常见优化包括固定镜像版本、固定依赖版本、预装常用 CLI、复用模板、减少运行时下载。
longrun 任务应该怎么设计?
longrun 任务应围绕 sandboxId 管理生命周期,而不是只围绕单次命令返回值设计。
建议记录模板版本、启动命令、关键端口、健康检查方式和业务任务 ID。恢复后先确认命令通道、关键进程和文件状态,再继续执行。
文件可以保存在 Sandbox 里吗?
可以。Sandbox 文件系统可用于保存任务输入、中间文件和运行现场,并可随休眠/恢复继续使用。
如果数据需要跨 Sandbox、跨业务流程共享,或用于审计留存,应写入 OSS、NAS、数据库或业务存储。
如何发现资源泄露?
定期列出仍在运行的 Sandbox,按任务 ID、用户 ID、模板和创建时间排查异常存活实例。
生产封装中应记录创建和释放事件,并对超时、取消、异常路径做清理测试。