基于 Cloudflare Workers 部署的 JSON Database 数据库

570 字 · 5136 阅读 · 2021 年 12 月 29 日

Cloudflare Workers 是优秀的 Serverless 服务,同时附带免费的键值数据库 KV。Cloudflare 基础设施优秀,业界良心。相比 AWS Lambda 等易用性更好,产品体验一流。我已经将自己大部分 Serverless 函数转移到 Cloudflare Workers。

Cloudflare Workers 免费计划包含了高达 100,000 次每天的请求额度。而全局性的低延迟键值边缘数据库,同样也支持每天最多 100,000 次读取操作,以及每天最多 1,000 次写入、删除和列出操作。

结合二者,我们通过不超过 100 行的 JavaScript 代码,即可构建一个实用的 JSON Database 数据库。可以方便地存储和读取 JSON 数据。

示例

使用 POST 向命名空间 demo_bucket/hello 写入示例数据 {"hello": "world"}

curl -X "POST" "https://jsonbase.huhuhang.workers.dev/demo_bucket/hello" \
     -H 'Content-Type: application/json; charset=utf-8' \
     -d '{"hello": "world"}'

使用 GET 方法获取命名空间 demo_bucket/hello 的数据:

curl "https://jsonbase.huhuhang.workers.dev/demo_bucket/hello"

返回:

{ "hello": "world" }

部署

你可以直接在 Cloudflare Workers 网页版中新建项目,并复制本仓库中的 index.js 到在线编辑器中部署。

同时需要创建一个 KV 数据库,并绑定到 Cloudflare Workers。

或者使用官方提供的 wrangler cli 工具:

  1. 了解 Cloudflare Workers 命令行工具 wrangler 的使用方法。
  2. 基于本项目初始化一个新的项目:wrangler generate jsonbase https://github.com/huhuhang/jsonbase
  3. 请修改 wrangler.toml 中预留的 account_id,替换为你的账户信息。
  4. 请修改 wrangler.toml 中预留的 KV 数据库 id,替换为你的账户信息。
  5. jsonbase 项目添加到 Cloudflare Workers 部署。

身份认证

目前没有添加任何身份认证,为了保护数据安全,可以使用 Cloudflare Access 创建请求策略。或者参考 官方示例 修改代码添加认证模块。请不要在生产环境使用文章中的示例数据库,你的数据可能被移除或篡改,请自行部署。