Edge Computing: Cloudflare Workers 与 AWS Lambda@Edge 对比

通过全面对比 Cloudflare Workers 与 AWS Lambda@Edge 这两大主流平台,本文详细剖析了它们在冷启动时间、计算成本、资源配额限制以及日常开发体验等关键维度的显著差异,旨在帮助处于各阶段的 SaaS 企业更精准地选出最契合自身业务与代码架构的低延迟 Serverless 边缘计算解决方案。

Alex Chen
Alex Chen
June 1, 202615 min read
其他语言:Deutsch · English

太长不看(TL;DR): Cloudflare Workers 和 AWS Lambda@Edge 均在边缘节点执行代码,但在冷启动、定价和平台能力上存在显著差异。Workers 提供低于 5ms 的冷启动时间和慷慨的免费额度;而 Lambda@Edge 则提供了与 AWS 服务的原生集成。如果你是首次评估边缘计算方案,可以先阅读我们的 Cloudflare Workers 介绍。详细对比请访问 tanstackship.com。

简介

边缘计算(Edge computing)将代码执行推向离用户更近的位置,把延迟从数百毫秒降低至个位数。Cloudflare Workers 和 AWS Lambda@Edge 是目前最主流的两大平台。选择哪一个取决于你当前的云生态系统、性能需求以及项目预算。想深入了解边缘架构为何对降低延迟至关重要,请参考 降低首字节时间(TTFB)。

架构对比

特性Cloudflare WorkersAWS Lambda@Edge
运行环境V8 Isolates (独立的 JS 上下文)Firecracker microVMs
冷启动<5ms (典型值)50-200ms (典型值)
内存限制128 MB (免费版), 最高至 128 MB128 MB 到 10,240 MB
CPU 时间30s (免费版), 60s (捆绑版)5s (查看者请求), 30s (源站请求)
支持语言JavaScript, TypeScript, WASMNode.js, Python, Go 等
请求体大小100 MB (免费版)1 MB (查看者), 30 MB (源站)
部署区域330+ 个位置13+ 个 CloudFront 边缘位置

冷启动分析

Request #    Workers (ms)    Lambda@Edge (ms)
    1              2             187
    2              1              12
    3              1               8
    4              2             195 (scale event)
    5              1               9
    
Average         1.4ms            82.2ms
P99             4ms             412ms

定价对比

场景Cloudflare Workers (1000 万次请求)Lambda@Edge (1000 万次请求)
计算成本$0.50 (包含在免费额度内)$6.00 (前 1000 万次免费)
额外请求成本每百万次 $0.30每百万次 $0.60
执行时间成本已包含每 128MB-秒 $0.00005
免费额度每天 10 万次请求每月 100 万次请求
月度成本 (1 亿次请求)~$27~$60-100

代码示例

ts
// Cloudflare Worker
export default {
  async fetch(request: Request, env: Env): Promise<Response> {
    const url = new URL(request.url)
    const cacheKey = `page:${url.pathname}`
    
    // 检查 KV 缓存
    const cached = await env.KV.get(cacheKey, 'json')
    if (cached) {
      return Response.json(cached, {
        headers: { 'X-Cache': 'KV' }
      })
    }
    
    // 从源站获取数据
    const response = await fetch(`https://origin.example.com${url.pathname}`)
    const data = await response.json()
    
    // 在 KV 中进行异步缓存
    env.KV.put(cacheKey, JSON.stringify(data), { expirationTtl: 300 })
    
    return Response.json(data)
  }
}
js
// AWS Lambda@Edge (源站请求)
exports.handler = async (event) => {
  const request = event.Records[0].cf.request
  const response = event.Records[0].cf.response
  
  // 添加安全请求头
  response.headers['strict-transport-security'] = [{
    key: 'Strict-Transport-Security',
    value: 'max-age=63072000; includeSubdomains; preload'
  }]
  
  response.headers['x-content-type-options'] = [{
    key: 'X-Content-Type-Options',
    value: 'nosniff'
  }]
  
  return response
}

开发者体验

评估维度Cloudflare WorkersAWS Lambda@Edge
本地开发wrangler dev (即时生效)sam local 或 amplify mock
部署速度wrangler deploy (2-3s)CloudFormation / CDK (数分钟)
调试方案控制台 + tail 日志CloudWatch Logs
TypeScript一等公民支持通过 esbuild/webpack
测试支持workerd (本地运行环境)Docker 或模拟 AWS

方案选型指南

适用场景推荐平台选用原因
全新启动的 SaaS 项目Cloudflare Workers成本低、冷启动快、开发者体验简单纯粹
已重度依赖 AWSLambda@Edge能与 CloudFront、S3、DynamoDB 实现原生无缝集成
高并发 API 接口Cloudflare Workers在 330+ 个节点上提供低于 5ms 的冷启动性能
复杂的数据处理链路Lambda@Edge拥有更高的 CPU 执行时间和内存上限
开发者工具平台Cloudflare Workers提供 Workers for Platforms 与 Durable Objects
需要 AWS 合规审计的企业Lambda@Edge沿用 AWS 体系的 SOC 2 和 HIPAA 认证

总结

Cloudflare Workers 在冷启动性能、全球节点分布与开发者体验方面表现出众,是构建对延迟敏感的 SaaS 应用程序的理想之选。如果你的基础设施架构已与 AWS 深度绑定,Lambda@Edge 则是非常合适的选择。对于绝大多数新起步的 SaaS 项目来说,Cloudflare Workers 能够以更低的成本提供更出色的性能表现。

想要进一步了解 Workers 独树一帜的运行环境原理,请查阅 Cloudflare Workers:JavaScript Runtime 与 V8 Isolates 对比。如果在内容分发层面上需要做架构规划,我们的 CDN 选择与配置指南 可以为你提供关于边缘服务的更全局视角的参考。