返回项目目录
开源平台精选项目

Cloudflare Workers

在 Cloudflare 全球网络上构建、部署和扩展应用的 Serverless 计算平台。

主要语言TypeScript
开源许可Apache-2.0(workerd)
项目类型开源平台
维护状态活跃维护
OVERVIEW

项目概述

Cloudflare Workers 以 Web 标准 API 和 V8 Isolate 为基础,让开发者用 JavaScript、TypeScript 等语言构建边缘 API、全栈应用、后台任务与 AI 服务,并通过 Bindings 连接数据和平台能力。

Cloudflare Workers 是运行在 Cloudflare 全球网络上的 Serverless 应用平台。请求由基于 V8 Isolate 的运行环境处理,应用以标准 Request、Response、Fetch、Streams、Web Crypto 等 Web API 编写,不需要自行管理服务器、容器编排或区域扩容。Workers 可通过 Bindings 直接连接 KV、D1、R2、Durable Objects、Queues、Workers AI、Vectorize、Hyperdrive 和其他服务,并用 Wrangler 在本地开发、生成类型、部署、查看日志与管理配置。支撑 Workers 的 workerd 运行时采用 Apache-2.0 许可证开源,但 Cloudflare 托管网络、控制面和部分平台服务并不等同于一个可完整自托管的开源产品。

开源运行时workerd
执行模型V8 Isolates + Web APIs
开发工具Wrangler / Miniflare
FEATURES

主要特点

Workers 将全球分布式计算、Web 标准运行时、数据 Bindings 和应用交付流程组织成同一套平台能力。

01

全球分布式 Serverless 运行

应用由 Cloudflare 网络在接近请求的位置执行,平台负责容量、实例调度、部署和基础网络,无需维护常驻服务器。

02

轻量 V8 Isolate 模型

workerd 使用 V8 Isolate 隔离不同 Worker,相比为每个请求启动完整虚拟机或容器更轻量,并支持快速创建执行上下文。

03

Web 标准编程接口

Fetch Handler 直接接收 Request 并返回 Response,同时支持 URL、Headers、Streams、WebSocket 和 Web Crypto 等熟悉的标准 API。

04

丰富的平台 Bindings

通过 env 或生成的类型直接访问 KV、D1、R2、Durable Objects、Queues、AI、Vectorize 与服务绑定,避免从 Worker 内调用管理 REST API。

05

完整应用与静态资源

除 API 外,还可部署静态资源和主流全栈框架,并在同一项目中组合前端资产、服务端渲染和后端逻辑。

06

后台任务与有状态能力

Cron Triggers、Queues、Workflows 和 Durable Objects 分别覆盖定时执行、异步消息、持久流程与强一致协调。

07

Node.js 兼容路径

nodejs_compat 可提供 Buffer、Crypto、Stream、AsyncLocalStorage 等 Node.js API,帮助更多 npm 库运行在 Workers 环境。

08

版本、日志与可观测性

兼容日期控制运行时行为,版本和渐进部署降低发布风险;Workers Logs、实时 Tail、指标与 Trace 用于定位线上问题。

USE CASES

适用场景

适合需要靠近用户执行、按请求弹性扩展,或希望把计算、静态资源、数据和 AI 服务放入统一平台的应用。

全球 API 与 BFF

在接近用户的位置完成认证、聚合、个性化和响应转换,为 Web、移动端或第三方客户端提供轻量后端。

边缘代理与请求处理

在现有源站前执行重写、重定向、Header 处理、访问控制、实验分流和缓存策略。

全栈 Web 应用

部署 React、Vue、Svelte、Astro、Next.js 等框架,把静态资源、服务端渲染、Route Handler 和数据访问组合在一起。

实时协作与协调

结合 WebSocket 和 Durable Objects 构建聊天室、协作文档、游戏房间及需要单实体强一致状态的系统。

异步任务与工作流

使用 Queues、Cron Triggers 和 Workflows 处理 Webhook、通知、定时同步、批处理及可重试的长流程。

AI 与数据应用

通过 Workers AI、Vectorize、AI Gateway、R2 和 D1 构建推理、RAG、内容处理和数据驱动的边缘应用。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

Cloudflare Workers 擅长的地方

  • 计算可在 Cloudflare 全球网络中靠近用户执行
  • 无需管理服务器、容器集群、补丁和基础容量扩缩
  • Web 标准 API 便于在浏览器、边缘和多运行时之间共享代码思路
  • Bindings 让计算直接连接存储、消息、AI 和其他 Worker
  • Wrangler 覆盖脚手架、本地开发、类型生成、部署与实时日志
  • workerd 开源,运行时行为可查看源码并可用于本地及其他部署场景

需要注意

采用前应考虑的问题

托管平台不等于开源运行时

workerd 可以开源使用,但 Cloudflare 的全球网络、控制面、托管数据服务和运维能力不能通过部署 workerd 完整复制,选型时要区分两者。

不是完整的 Node.js 进程

Workers 以 Web API 和 Isolate 为核心。即使启用 nodejs_compat,原生扩展、任意进程、传统文件系统及部分底层网络行为仍可能不可用。

平台限制需要按套餐核对

CPU 时间、内存、请求体、子请求、并发连接和执行时长等限制会随产品与套餐变化,设计前应查看当前官方限制而不是依赖旧数字。

模块级状态会跨请求复用

同一 Isolate 可能处理多个请求,不应把用户、认证或请求上下文保存在可变全局变量中;持久状态应放入合适的存储或 Durable Object。

需要选择正确的数据产品

KV、D1、R2、Durable Objects 和外部数据库拥有不同的一致性、查询、容量与延迟模型,不能用一个绑定替代所有数据需求。

外部数据库可能远离执行位置

全球执行并不自动降低到单一区域数据库的延迟。应评估 Smart Placement、Hyperdrive、连接方式和数据所在区域。

平台绑定会影响可移植性

大量依赖专用 Bindings、路由和部署能力会增加迁移成本,可把领域逻辑与平台适配层分离,并用本地和集成测试覆盖边界。

后台 Promise 必须明确处理

每个 Promise 都应 await、return 或交给 ctx.waitUntil;未等待的异步任务可能在响应返回后被取消,错误也可能丢失。

QUICK START

快速开始

使用官方 C3 脚手架、TypeScript、Wrangler 和原生 Fetch Handler 创建一个最小 JSON API。

1使用官方脚手架创建 Worker
bash
npm create cloudflare@latest -- hello-workers
cd hello-workers

# 在向导中选择:
# Hello World example
# Worker only
# TypeScript
# 暂不部署
2配置当前兼容日期与可观测性
json
{
  "$schema": "node_modules/wrangler/config-schema.json",
  "name": "hello-workers",
  "main": "src/index.ts",
  "compatibility_date": "2026-07-26",
  "compatibility_flags": ["nodejs_compat"],
  "observability": {
    "enabled": true,
    "head_sampling_rate": 1
  }
}
3创建类型安全的 Fetch Handler
typescript
export default {
  async fetch(request): Promise<Response> {
    const url = new URL(request.url);
    const requestId = crypto.randomUUID();

    if (request.method === "GET" && url.pathname === "/health") {
      return Response.json(
        { status: "ok", runtime: "Cloudflare Workers" },
        { headers: { "x-request-id": requestId } },
      );
    }

    if (request.method === "GET" && url.pathname === "/api/hello") {
      const name = url.searchParams.get("name") ?? "World";

      return Response.json(
        { message: `Hello, ${name}!`, requestId },
        { headers: { "cache-control": "no-store" } },
      );
    }

    return Response.json(
      { error: "Not found", requestId },
      { status: 404 },
    );
  },
} satisfies ExportedHandler<Env>;
4生成绑定类型并启动本地开发
bash
npx wrangler types
npm run dev

# 默认本地地址通常是 8787
curl "http://localhost:8787/health"
curl "http://localhost:8787/api/hello?name=Ada"
5安全保存生产机密
bash
# 交互式输入,不把密钥写进源码或 wrangler.jsonc
npx wrangler secret put API_TOKEN

# 本地开发使用 .dev.vars,并确保它已被 .gitignore 排除
6部署并查看实时日志
bash
npx wrangler deploy
npx wrangler tail

下一步:新项目应把 compatibility_date 设为当前日期、定期测试升级,使用 wrangler types 生成绑定类型,并把机密交给 Wrangler 管理。生产环境还应根据流量调整日志采样,核对套餐限制,并为外部请求设置超时、重试和降级路径。

ALTERNATIVES

类似项目

这些运行时和框架同样可以执行服务端 JavaScript,但在执行模型、系统 API、部署方式和平台依赖上各有侧重。

COMPARISON

Cloudflare Workers vs Node.js

Cloudflare Workers 和 Node.js 都能执行服务端 JavaScript,但 Workers 是托管在全球网络上的 Isolate 平台,Node.js 则是可在自有服务器、容器和多种云环境中运行的通用进程运行时。

比较维度Cloudflare WorkersNode.js
交付形态Cloudflare 托管的全球 Serverless 平台可自行安装和部署的跨平台运行时
执行模型V8 Isolate,由平台调度和复用操作系统进程,使用 V8 与 libuv
主要 APIRequest、Response、Fetch、Streams 与平台 BindingsNode 核心模块、Web API、操作系统和网络接口
基础设施无需管理服务器,平台负责全球扩缩和发布自行选择主机、容器、Serverless 或托管平台
数据连接KV、D1、R2、Durable Objects、Hyperdrive 等 Bindings通过 npm 客户端、网络协议和本地系统资源连接
生态兼容Web 标准优先,通过 nodejs_compat 支持部分 Node 生态Node.js 与 npm 生态的兼容性基准
运行约束受平台 CPU、内存、连接和执行模型限制由主机、容器和操作系统资源配置决定
更适合全球 API、边缘逻辑、Serverless 全栈与平台数据服务长驻服务、原生扩展、复杂后台任务和自定义基础设施
如何选择

需要全球分布、自动扩缩、低运维负担,并愿意采用 Web API 和 Cloudflare Bindings 时,Workers 通常更直接;需要完整 Node.js 兼容、原生扩展、任意后台进程或基础设施控制权时,Node.js 更合适。许多系统也会组合使用:Workers 处理边缘认证、缓存和 API 聚合,区域 Node.js 服务承担重计算与既有业务。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 26 日
核验版本Workers 官方文档主线 / workerd 2026-07-25
内容维护Docs100 编辑整理
项目维护状态活跃维护

本页依据 Cloudflare Workers 官方概述、CLI 入门、Fetch Handler、兼容日期与最佳实践文档,以及最新 workerd 源码和 Workers 类型定义整理。示例采用 ES Modules、当前 compatibility_date、wrangler types、nodejs_compat 和结构化可观测配置;平台能力、限制与价格变化较快,生产采用前应再次核对官方文档。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 25 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 25 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库