如何不登陆CF网站,直接在自己建的网页在CF新建WORKER-系列一

这个问题非常好,代表你已经在思考如何自动化部署 Cloudflare Workers,绕过手动登录 CF 管理后台。答案是:可以实现,而且 Cloudflare 官方就支持这一点,通过 API + Token 授权机制,再配合你自己的 Web 页面或脚本,就能在不登录 CF 控制台的情况下:

✅ 创建
✅ 编辑
✅ 部署
✅ 启用 Cloudflare Workers


✅ 一、核心方案概览

你可以通过以下技术栈构建自己的“Workers 控制平台”:

组件用途
🔐 Cloudflare API Token用于身份验证,管理 Workers 权限
🧠 REST API 接口(官方)提供创建、更新、部署 Worker 的接口
🌐 你自建的 Web 页面提供 UI,让用户粘贴或编写 Worker 脚本
🪝 后端代码(Node.js / Python / PHP / Go)用于发起 API 请求到 CF Workers API
💾 KV / 本地数据库(可选)存储用户提交的脚本历史或配置

✅ 二、Cloudflare API 创建 Worker 的流程

Cloudflare 的官方接口如下文档:https://api.cloudflare.com/

我们这里聚焦在:

  • 🔧 PUT /accounts/:account_id/workers/scripts/:script_name —— 上传脚本
  • POST /accounts/:account_id/workers/scripts/:script_name/subdomain —— 绑定到 Workers.dev 子域名(用于测试)

✅ 三、实战步骤(自动部署 Worker)

🛠️ Step 1:准备 API Token

  1. 登录 Cloudflare → My Profile → API Tokens
  2. 创建自定义 Token,权限包括:
    • Account.Workers Scripts:Edit
    • Account.Workers Scripts:Read
    • Account.Workers Routes:Edit(如你需要绑定自定义域)
  3. 保存 Token 值(用于 HTTP 请求)

🛠️ Step 2:获取账号信息

  • account_id:在 Cloudflare 仪表盘 “Workers & Pages” 页面的 URL 中可以找到
  • zone_id:如果你想部署到自定义域名(非 *.workers.dev),你还需要域名的 zone_id

🛠️ Step 3:发送上传请求(用你网页的后台)

以 Node.js 为例:

const axios = require('axios')
const fs = require('fs')

const apiToken = 'YOUR_API_TOKEN'
const accountId = 'YOUR_ACCOUNT_ID'
const scriptName = 'my-custom-worker'

const code = `
addEventListener("fetch", event => {
event.respondWith(new Response("Hello from custom Worker!", { status: 200 }))
})
`

axios.put(`https://api.cloudflare.com/client/v4/accounts/${accountId}/workers/scripts/${scriptName}`, code, {
headers: {
'Authorization': `Bearer ${apiToken}`,
'Content-Type': 'application/javascript',
}
}).then(res => {
console.log('Uploaded:', res.data)
}).catch(err => {
console.error('Failed:', err.response.data)
})

🛠️ Step 4:在你的网站做一个表单页面

<form id="workerForm">
<textarea name="code" rows="20" cols="60">// 输入 JS Worker 代码</textarea>
<button type="submit">部署到 Cloudflare</button>
</form>
<script>
document.getElementById('workerForm').onsubmit = async e => {
e.preventDefault()
const code = e.target.code.value
const res = await fetch('/api/deploy-worker', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ code })
})
alert(await res.text())
}
</script>

你只需要写一个后端 /api/deploy-worker 接口,把代码转发到 Cloudflare 上。


✅ 四、你可以控制哪些事情?

  • ✅ 自定义脚本名称(URL)
  • ✅ 决定绑定到哪一个子域名或路径
  • ✅ 实时修改代码、重新部署
  • ✅ 设置路由(用于让特定域名触发 Worker)

🔐 安全建议

  • 不要把 Token 写死在前端!应由你的网站后端管理 Token。
  • 可以在服务器使用队列、缓存等来优化频繁部署。
  • 限制每个用户部署频率,防止滥用。

✅ 总结一句话:

你完全可以在自己的网页中通过 API + Token 自动部署 Cloudflare Worker,无需登录官网,打造属于你自己的边缘函数发布平台。

admin

admin

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Hey there! Ask me anything!