原文英文,约200词,阅读约需1分钟。
📝
内容提要
Vercel Sandbox 更新:Sandbox.create() 现在会等待快照恢复完成后再返回,启动错误也会在此阶段直接报错,而非延迟到首次操作。创建耗时 p50 增加约 50 毫秒,未缓存快照可能更久,但首次操作总耗时不变。无需升级 SDK 或改配置,自动生效。
🔎
延伸解读
行为变更:创建即就绪
Sandbox.create() 现在会等待快照恢复完成才返回,因此创建成功后沙箱立即可用。启动错误也会在创建阶段直接抛出,而不是延迟到首次执行命令或文件操作时。这改变了错误处理时机,开发者需在创建时捕获异常。
性能影响:创建耗时增加
快照恢复时间被计入创建阶段,导致创建耗时中位数增加约 50 毫秒,未缓存快照可能增加更多。但首次操作的总耗时不变,因为原本等待恢复的时间被提前。对于频繁创建沙箱的场景,需关注创建延迟的上升。
迁移成本:无需改动
此变更自动生效,无需升级 SDK 或修改配置。现有代码中依赖首次操作报错的逻辑可能需要调整,因为错误现在会在创建时抛出。建议检查错误处理代码,确保能正确捕获创建阶段的异常。
❓
Q&A
Vercel Sandbox 的 Sandbox.create() 现在有什么变化?
Sandbox.create() 现在会等待快照恢复完成后再返回,启动错误也会在此阶段直接报错,而不是延迟到首次操作。
创建沙箱后,第一次运行命令还需要等待快照恢复吗?
不需要。因为 Sandbox.create() 已经等待快照恢复完成,所以第一次运行命令或文件操作不再需要等待。
启动错误现在会在什么时候报出来?
启动错误现在会直接导致 Sandbox.create() 拒绝(reject),而不是在首次操作时才出现。
这次更新对创建耗时有什么影响?
创建耗时在 p50 增加了约 50 毫秒,未缓存快照可能增加更多。但首次操作的总耗时保持不变。
需要升级 SDK 或修改配置来适应这个变化吗?
不需要。此更改自动生效,无需升级 SDK 或更改配置。
快照恢复时间现在算在哪个阶段?
快照恢复时间现在计入创建阶段,而不是首次操作阶段。
🏷️