在你自己的 Cloudflare 账户上运行应用
要点在“后端 → 云服务”中连接 Cloudflare API 令牌,你的应用就可以运行在你自己的 Cloudflare 账户上,而不是 MonstarX 的:用你的 Worker、你的 D1 数据库、你的域名,费用也记在你的账单上。应用的代码还可以使用 KV、R2、Queues、Vectorize、Workers AI 等 Cloudflare 服务,由 MonstarX 在你的账户上创建。
MonstarX 会把每个应用发布在自己的云上,你什么都不用管。如果你的公司已经在用 Cloudflare,或者你希望应用、数据和账单都归在自己名下,可以连接你的 Cloudflare 账户。这样会带来两个变化:
- 托管。 发布时,应用会部署到你的 Cloudflare 账户:用你的 Worker(为应用提供服务的程序)、你的 D1 数据库(Cloudflare 的 SQL 数据库)、你的域名,费用记在你的账单上。
- Cloudflare 服务。 应用的代码可以使用 Cloudflare 的其他服务,比如存储、队列、AI 等,MonstarX 会替你在你的账户上设置好。
你需要一个 Cloudflare API 令牌。在 Cloudflare 中进入 Manage Account → API Tokens,用 Edit Cloudflare Workers 模板创建令牌,并添加 D1: Edit 权限。你希望应用使用的每项额外服务,都要添加对应的权限:
| 服务 | 用途 | 需要添加的权限 |
|---|---|---|
| KV | 快速的键值存储,适合设置、缓存、功能开关和短期令牌 | Workers KV Storage: Edit |
| R2 | 下载不收流量费的文件存储,适合上传文件、图片、导出和备份 | Workers R2 Storage: Edit |
| Queues | 后台任务:在请求中先把工作交出去,稍后再完成,失败可重试 | Queues: Edit |
| Vectorize | 按语义搜索的向量索引 | Vectorize: Edit |
| Workers AI | 用于文本、嵌入向量和图片的开放 AI 模型,费用由你承担 | Workers AI: Edit |
| Browser Rendering | 一个真实的浏览器,可以截图、生成 PDF,以及提取任意页面的可读文本 | Browser Rendering: Edit |
| Images | 存储和调整图片大小,支持变体和分发地址 | Cloudflare Images: Edit |
| Analytics Engine | 按任意规模记录你自己的事件,并用 SQL 查询 | Account Analytics: Read |
如何连接我的 Cloudflare 账户?
Section titled “如何连接我的 Cloudflare 账户?”-
打开项目,点击顶部栏中的后端,再点击云服务。
-
在连接器中点击 Cloudflare 旁的连接。(如果还没有令牌,点击创建令牌会打开 Cloudflare 的令牌页面。)
-
把令牌粘贴到 API 令牌中,点击连接 Cloudflare。
-
如果令牌可以访问多个账户,请选择应用要运行在哪个账户上,然后点击使用此账户。如果 MonstarX 无法用这个令牌列出你的账户,它会请你填写账户 ID(32 个字符,可在 Cloudflare 控制台中找到)。
接着,MonstarX 会检查这个令牌有哪些权限。没有 Workers 和 D1 权限时,它不会连接,并会明确告诉你要添加哪项权限。如果缺少某项额外服务的权限,它会提示(“此令牌无法访问 …”),其余功能照常可用。
如何发布到我自己的账户?
Section titled “如何发布到我自己的账户?”连接后,后端云服务 中的 Cloudflare 卡片会显示你的账户和一个开关:在我的 Cloudflare 上运行此应用。开启后,发布会说明将“部署到你的 Cloudflare 账户”,并写明账户和地址。
发布时:
- MonstarX 会在你的账户上创建一个以项目命名的 D1 数据库(如果已有同名数据库则直接使用),并建好应用需要的每张表。
- 它会构建应用,并以应用的名称作为 Worker 名称上传。
- 应用会通过
your-app.your-subdomain.workers.dev或你自己的域名提供访问。
要使用自己的域名,点击 Cloudflare 卡片中的使用我的域名。MonstarX 会列出你 Cloudflare 账户中的域名;选择一个,输入地址(域名本身或其任意子域名),然后点击使用此地址。Cloudflare 会添加 DNS 记录和 HTTPS 证书。更改会在你下次发布时生效。点击使用 workers.dev 即可换回来。
应用如何使用 Cloudflare 服务?
Section titled “应用如何使用 Cloudflare 服务?”直接说出你的需求:“把上传的照片存到 R2”“用 KV 缓存菜单”“用 Workers AI 总结评论”。MonstarX 会在你的账户上创建这项服务(以项目命名,如果已有同名服务则直接使用),把它连接到应用,并编写代码。在预览中也能立即使用。
你也可以在 Cloudflare 卡片的 Cloudflare 服务列表中自己管理:点击添加一项服务,起一个简短的名字(比如 uploads 或 sessions),然后点击创建。停止使用会断开该服务与应用的连接,Cloudflare 上的内容不会被删除,数据仍保留在你的账户中。
- 你的限额,你的账单。 Cloudflare 会按应用的用量向你的账户收费。Cloudflare 的请求限制按账户计算,所以你账户上繁忙的应用永远不会拖慢别人的应用,别人的应用也不会拖慢你的。
- 取消发布会从你的账户中删除 Worker。你的 D1 数据库和其他服务会保留。
- 应用在该账户上线期间,无法更换或断开账户。 请先取消发布,或者关闭在我的 Cloudflare 上运行此应用并发布。把应用迁入或迁出你的账户时,原来位置上的 Worker 会被删除。
- 数据在 Supabase 或 Railway 中? 应用会继续使用那个数据库,不会为它创建 D1 数据库。
- 导入的应用会以其自身构建生成的静态文件发布到你的账户。它们没有数据库,也无法使用 Cloudflare 服务辅助工具。
- 导出的代码包含同样的 Cloudflare 配置,所以在下载的代码中运行
wrangler deploy会连接同样的服务。详见导出代码。
我的令牌需要哪些权限?
从 Cloudflare 的 Edit Cloudflare Workers 模板开始,并添加 D1: Edit。每项额外服务都要添加相应权限,比如 R2 需要 Workers R2 Storage: Edit。
为什么线上应用的数据和预览中的不一样?
在你自己的 Cloudflare 账户上,线上应用拥有独立的 D1 数据库,并且从空数据库开始。预览则继续使用 MonstarX 上的测试数据,这样你测试时就不会碰到真实客户的记录。
可以使用我自己的域名吗?
可以,前提是该域名在你的 Cloudflare 账户中。点击 Cloudflare 卡片中的使用我的域名,选择域名,输入地址,然后重新发布。
MonstarX 会删除我 Cloudflare 账户上的东西吗?
只会在你取消发布、或把应用迁出该账户时,删除应用的 Worker。停止使用永远不会删除数据库和服务。
可以换回 MonstarX 的托管吗?
可以。关闭在我的 Cloudflare 上运行此应用,然后重新发布。应用迁回 MonstarX 后,你账户上的 Worker 会被删除。