跳转到内容

在 Cloudflare 沙箱上自托管

Cloudflare 是参考运行时:每个 Session 在由平台部署管理的 Workers Containers 沙箱中运行。它是唯一声明强制(enforced)凭证出口的驱动——容器的出站 HTTP 和 HTTPS 流量会被拦截,作用域凭证被实时注入,从不暴露给沙箱。完整部署见 部署到 Cloudflare,组合方式见 托管运行时宿主。

Terminal window
CLOUDFLARE_API_TOKEN= # 必需(或已认证的 wrangler 配置)
CLOUDFLARE_ACCOUNT_ID= # 必需
# 检查点/输出存储
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
OMA_CLOUDFLARE_R2_BUCKET=
# 仅 Sandbox Bridge 变体
OMA_CLOUDFLARE_BRIDGE_URL=
OMA_CLOUDFLARE_BRIDGE_API_KEY=
OMA_CLOUDFLARE_BRIDGE_RUNTIME_ID=

Cloudflare 驱动由平台部署组合,而不是 SANDBOX_PROVIDER。工厂是 @open-managed-agents/managed-runtime-cloudflare 的 createCloudflareManagedRuntime / createCloudflareManagedRuntimeDriver:

const driver = createCloudflareManagedRuntimeDriver(env, {
leaseTtlMs: 90_000,
createSandbox: (env, runtimeId) => /* 基于 SDK 的 Sandbox/DO 封装 */,
controlPlaneBaseUrl: "https://openma.example",
workspaceDurableMount: true, // Session 作用域的 R2 挂载到 /workspace
});

选项:createSandbox(必需——应用自己的封装,因此该包从不导入应用)、leaseTtlMs、controlPlaneBaseUrl、runtimeEnvironment,以及 workspaceDurableMount(需要 WORKSPACE_BUCKET、WORKSPACE_BUCKET_NAME、R2_ENDPOINT 和 R2_* 凭证)。

cloudflare-bridge 变体改为通过 HTTP 接入运维方部署的官方 Cloudflare Sandbox Bridge。其工厂 createCloudflareBridgeManagedRuntime 接受 baseUrl、apiKey(Bridge 的 SANDBOX_API_KEY,绝不进入沙箱)、用于可移植 /workspace tar 归档的 checkpointStore BlobStore,以及 checkpointKeyPrefix、checkpointExcludes、maxHydrateBytes 和 fetch。

cloudflarecloudflare-bridge
Harness 通道ama_worker、openma_supervised仅 ama_worker
suspendResume不支持不支持
工作区checkpoint_restore,持久checkpoint_restore,持久
输出final_collect,持久final_collect,持久
进程检查点无无
凭证出口enforced / live,http+https默认 unsupported/snapshot