Skip to main content
On this page

将 Deno Sandbox 升级为 Deploy 应用

有时,Deno Sandbox 会验证一个概念或原型,而它应该作为一流的 Deno Deploy 应用继续存在。你无需在其他地方重建代码库,而是可以直接使用 sandbox.deno.deploy() 将 sandbox 升级。

临时计算 vs Deploy 应用 Jump to heading

Aspect Deno Sandbox Deno Deploy Apps
生命周期 几秒到几分钟 始终在线,受管理的发布
控制平面 通过 SDK 以编程方式 Dashboard + CI/CD
使用场景 Agent、预览、不受信任的代码 生产 API、长期运行的服务
状态 临时(需要时使用卷) 通过 KV、数据库实现持久部署
暴露方式 每个 sandbox 使用 exposeHttp()/exposeSsh() 自定义域名、TLS、内置路由

先在 sandbox 中开始,以便快速迭代。一旦代码库稳定并且需要 24/7 可用性,就将它升级为 Deploy 应用,由系统为你管理构建、发布和可观测性。

使用 sandbox.deno.deploy() 进行升级 Jump to heading

当 sandbox 验证了概念后,你可以无需在别处重建,就把它变成一个始终在线的 Deploy 应用。sandbox.deno.deploy() 会快照当前文件系统,保留网络策略,并为应用配置持久 URL、可观测性和团队访问权限。

await using sandbox = await Sandbox.create({ timeout: "10m" });
// ...构建或搭建你的服务...

const app = await sandbox.deno.deploy("ai-preview", {
  entrypoint: "server.ts",
});
console.log(`已升级为 Deploy 应用 ${app.slug}`);
from deno_sandbox import DenoDeploy

sdk = DenoDeploy()

with sdk.sandbox.create(timeout="10m") as sandbox:
  # ...构建或搭建你的服务...

  build = sandbox.deno.deploy("ai-preview", entrypoint="server.ts")
  print(f"已升级为 Deploy 应用,修订版 ID: {build.id}")
from deno_sandbox import AsyncDenoDeploy

sdk = AsyncDenoDeploy()

async with sdk.sandbox.create(timeout="10m") as sandbox:
  # ...构建或搭建你的服务...

  build = await sandbox.deno.deploy("ai-preview", entrypoint="server.ts")
  print(f"已升级为 Deploy 应用,修订版 ID: {build.id}")

升级的原因:

  • 将 sandbox 实验持续运行起来,为客户流量提供生产级 SLA。
  • 让 TLS、自定义域名、回滚和流量分割由系统为你处理。
  • 通过 Deploy UI 在团队内共享可观测性(日志/追踪/指标)。
  • 替代脆弱的手动交接;确切的 sandbox 状态会成为已部署的修订版。

将 sandbox 用于快速、临时的工作,然后在代码应作为受管理服务长期运行时调用 sandbox.deno.deploy()

Last updated on

Did you find what you needed?

编辑此页面
Privacy policy