Cloudflare Worker 的go部署教程

不完全是直接“上传文件”,Cloudflare Worker 的部署和传统服务器不一样,有几个关键点需要理解,尤其是涉及 WASM 模块(比如 Go 编译的 .wasm 文件)。我给你梳理清楚整个流程:

1️⃣ Worker 的部署方式

Cloudflare Worker 有几种常用部署方式:

1.	通过 Web UI
•	在 Cloudflare 仪表盘 → Workers → 创建 Worker
•	可以直接在在线编辑器里写 JS 代码
•	适合简单脚本,但上传 WASM 不能直接拖文件放进去
2.	通过 Wrangler CLI(推荐)
•	Wrangler 是 Cloudflare 官方提供的工具,用于本地开发、构建和部署 Worker
•	可以把 JS + WASM 模块一起打包上传

2️⃣ 如何上传 Go WASM 文件

Cloudflare Worker 并不能像传统服务器那样直接访问文件系统。你必须通过 Worker 项目打包 的方式上传:

a. 安装 Wrangler

npm install -g wrangler

wrangler login

b. 初始化项目

wrangler generate my-worker

cd my-worker

c. 项目结构示例

my-worker/

├─ package.json

├─ wrangler.toml

├─ worker.js # Worker 主入口

├─ main.wasm # Go 编译后的 WASM

└─ index.html # 可选,静态前端

d. 在 Worker 中引用 WASM

import wasmModule from './main.wasm'

addEventListener("fetch", event => {

event.respondWith(handleRequest(event.request))

})

async function handleRequest(req) {

const { instance } = await WebAssembly.instantiate(wasmModule)

// 这里根据 Go 暴露的接口调用

return new Response("Hello from WASM!", {

headers: { "content-type": "text/plain" }

})

}

注意:在 Wrangler 项目里,WASM 文件通过 import 或 bindings 的方式打包到 Worker。

e. wrangler.toml 配置 WASM

name = "go-wasm-worker"

main = "worker.js"

compatibility_date = "2025-12-12"

[[wasm_modules]]

name = "main"

path = "./main.wasm"

•	这样 Wrangler 知道要把 main.wasm 打包到 Worker

3️⃣ 部署到 Cloudflare

wrangler publish

•	这个命令会打包 JS + WASM 上传到 Cloudflare Worker
•	Worker 会有自己的 URL,例如:

https://go-wasm-worker.your-subdomain.workers.dev

4️⃣ 前端访问

•	前端页面 fetch('https://go-wasm-worker.your-subdomain.workers.dev')
•	就能拿到 Go WASM 返回的数据

✅ 总结

•	不能直接拖 .wasm 文件到 Worker UI,需要通过 Wrangler 打包 上传
•	Wrangler 会把 JS + WASM 打包成单个 Worker
•	前端通过 HTTP 请求调用 Worker API
•	Cloudflare 提供全球 CDN 加速、免维护服务器

如果你愿意,我可以帮你画一张 完整 Go WASM + Worker + 前端的部署架构图,让你一眼就看懂整个流程。

你希望我画吗?