SuperAPI AI 工具集

edge-computing

部署与运维

查看项目

更新于 10-16 10:39

技能介绍

用途

本技能面向边缘计算开发,用于在构建低延迟边缘应用、边缘侧渲染(edge-side rendering)或全球分布式计算时提供参考。

主要能力

平台对比

技能提供各边缘平台的运行时、冷启动与限制对比:

平台 运行时 冷启动 限制
Cloudflare Workers V8 isolates ~0ms 128MB, 30s CPU
Deno Deploy V8 isolates ~0ms 512MB, 50ms CPU
Vercel Edge Functions V8 isolates ~0ms 128MB, 25s
AWS Lambda@Edge Node.js ~100ms 128MB, 5s (viewer)
Bun JavaScriptCore N/A (server) No hard limits

Cloudflare Workers 示例

export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const url = new URL(request.url);

    // KV storage
    const cached = await env.KV.get(url.pathname);
    if (cached) return new Response(cached, { headers: { 'Cache-Control': 'max-age=60' } });

    // D1 database
    const { results } = await env.DB.prepare('SELECT * FROM users WHERE id = ?')
      .bind(url.searchParams.get('id'))
      .all();

    // Durable Objects for state
    const id = env.COUNTER.idFromName('global');
    const obj = env.COUNTER.get(id);
    const count = await obj.fetch(request);

    return new Response(JSON.stringify(results));
  }
};

边缘数据库

数据库 类型 适用场景
Cloudflare D1 SQLite Workers 原生,边缘 SQL
Turso libSQL (SQLite) 多区域副本,嵌入式
Cloudflare KV Key-value 简单缓存、配置
Durable Objects Stateful 实时、协调、计数器
Upstash Redis Redis 边缘限流、会话

Deno Deploy 示例

Deno.serve(async (req: Request) => {
  const kv = await Deno.openKv();
  const url = new URL(req.url);

  if (req.method === "POST") {
    const body = await req.json();
    await kv.set(["items", crypto.randomUUID()], body);
    return new Response("Created", { status: 201 });
  }

  const entries = kv.list({ prefix: ["items"] });
  const items = [];
  for await (const entry of entries) items.push(entry.value);
  return Response.json(items);
});

使用方式

技能以模式与代码示例的形式给出,涵盖以下常见模式:

  • 边缘侧渲染: 在边缘进行 SSR,实现全球 <50ms TTFB
  • 智能路由: 基于 request.cf.country 的地理感知请求路由
  • 边缘缓存: 使用 Cache API 进行细粒度控制,stale-while-revalidate
  • 限流: 使用 Durable Objects 或 Upstash 实现滑动窗口计数器
  • A/B 测试: 边缘侧功能开关,无需回源往返
  • 图片优化: 在边缘进行即时转换(Cloudflare Images、Imgproxy)

适用场景

适用于需要低延迟、全球分布式部署的边缘应用开发,包括边缘侧渲染、地理感知路由、边缘缓存、限流、A/B 测试与图片优化等场景。

限制与注意事项

  • V8 隔离运行时中不可使用 Node.js API(fs、net 等)
  • 不可使用原生模块或二进制文件(计算密集型工作请使用 WASM)
  • 每个请求的 CPU 时间有限——将重负载工作卸载到队列
  • 隔离运行时的冷启动接近零,但 Lambda@Edge 的冷启动是真实存在的
  • 数据库连接:使用基于 HTTP 的客户端,而非 TCP 连接池