Cloudflare Workers 上手:从零到部署一个短链接服务
Cloudflare Workers 是一个无服务器平台,允许开发者在全球边缘网络上运行代码。它支持多种语言,包括 TypeScript、JavaScript、Python 和 Rust。Workers 的特点是无状态,意味着数据无法持久化,但 Cloudflare 提供了一整套配套服务,包括 KV、D1、R2、Queues 和 Workflows,来帮助开发者构建应用。开发者可以使用 Wrangler 配置文件定义 Worker 需要的资源,并使用 Hono 框架简化路由处理。通过 Cloudflare Workers,开发者可以快速构建全球可用的应用,并享受低延迟和高性能的优势。
Cloudflare Workers 是一个无服务器(Serverless)平台。用它构建的应用可以享受 Cloudflare 遍布全球的边缘网络——你的代码会在离用户最近的节点运行。
它支持 TypeScript、JavaScript、Python、Rust 等语言(当然,大部分人都用 TS/JS)。
无服务器意味着什么?
无服务器 = 无状态(Stateless)。
好处是可扩展性极强:请求来了,Cloudflare 会在全球各个节点瞬间启动实例来处理。底层用的是 V8 引擎,冷启动飞快。请求处理完,实例就休眠了。
限制是数据无法持久化——但这不是问题,Cloudflare 提供了一整套配套服务:
服务 | 用途 |
|---|---|
KV | 键值对存储(本文会用到) |
D1 | SQLite 数据库 |
R2 | 对象存储(S3 兼容) |
Queues | 异步任务队列 |
Workflows | 持久化工作流 |
Workers AI | AI 推理 |
再加上开箱即用的日志和可观测性,基本上什么类型的应用都能构建了。
今天我们就来上手一下:写一个简单的 React 应用,再加一个短链接生成功能,最后部署上去。
前提:一个 Cloudflare 账号 + Node 环境。
创建项目
一路回车即可。
项目结构概览
重点关注两个地方:
worker/目录:后端逻辑wrangler.jsonc:基础设施即代码(Infrastructure as Code)
核心配置:wrangler.jsonc
这个文件定义了你的 Worker 需要什么资源。部署时 Cloudflare 会根据它来分配资源。
Worker 入口
就是一个 fetch handler,你来决定怎么处理请求。模板代码处理了 /api/ 路径,返回一段 JSON,其余返回 404。
类型生成
worker-configuration.d.ts 是根据 wrangler.jsonc 自动生成的类型文件,让 TypeScript 能识别你绑定的资源(KV、D1、环境变量等)。
每次改完配置文件,运行一下:
跑起来
打开页面,点击按钮,就能看到从后端接口返回的 "Cloudflare"。
实战:短链接生成器
接下来整点实际的——用 KV 存储做一个短链接服务。
绑定 KV 资源
修改 wrangler.jsonc:
两个关键改动:
run_worker_first:指定哪些路径由 Worker 处理,否则会被前端 SPA 接管kv_namespaces:绑定一个 KV 命名空间,变量名叫KV
然后重新生成类型:
安装 Hono
手写 if/else 路由太累了,装个轻量级框架:
编写后端逻辑
通过 c.env.KV 就能访问绑定的 KV 资源,类型提示完美。
修改入口文件
前端页面
😋让AI简单写个输入框和按钮及样式:
本地 pnpm dev 测试一下,功能正常就可以部署了。
部署
一条命令:
第一次会让你登录授权。然后你会看到类似这样的输出:
Cloudflare 会自动帮你创建 KV 资源,并把生成的 ID 写回 wrangler.jsonc:
在 wrangler 4.45.0 之前,你得先手动创建 KV、拿到 ID、填进配置文件。现在不用了,部署时自动搞定。
打开分配的 *.workers.dev 域名,你的短链接服务就上线了。
小结
Cloudflare Workers 的开发体验相当丝滑:
本地开发:
pnpm dev,热更新,KV 也能本地模拟类型安全:
wrangler types自动生成绑定类型一键部署:
pnpm deploy,资源自动创建
如果你想快速搭建一个全球可用的小应用,Workers 是个很好的选择。