关于cloudflare:使用免费的-Cloudflare-Workers-搭建-Serverless-站点计数服务

36次阅读

共计 1065 个字符,预计需要花费 3 分钟才能阅读完成。

这是重构集体网站的后期筹备之一。用于统计每个页面和整个站点的访问量。后续如果评论零碎有不错的抉择的话另说,不然也可能会再退出评论零碎的相干内容整合在一起。

该我的项目技术栈:

  • Typescript
  • Cloudflare Wrangler
  • Worktop (封装 Worker 的罕用办法和反对 Router)
  • Webpack

目前只有 Serverless 的实现,还没有 SDK,但能够封装 fetch 之类的调用,也非常简单。后续看是否须要,如果关注的人多起来,我也会多封装一些 SDK、工具脚手架之类的。


应用阐明

第一步,Fork 本我的项目,并 Clone 至本地。

  • 源码:https://github.com/willin/clo…
  • 镜像:https://gitee.com/willin/clou…

第二步,配置环境

# 装置命令行
npm install -g @cloudflare/wrangler
# 登录 Cloudflare
wrangler login
# 创立 KV 存储桶
wrangler kv:namespace create "views" --env production

关上 wrangler.toml,批改以下配置:

  • account_id
  • zone_id
  • route
  • kv_namespaces 中的 id

通过 Github Actions 主动部署,或者手动执行 wrangler publish --env production

须要在仓库设置中,配置 Secrets。名称为:CF_API_TOKEN,传入 Cloudflare 的 API Token。

API Token 生成拜访:https://dash.cloudflare.com/p…,抉择应用模板 Edit Cloudflare Workers 创立即可。

配置胜利后须要给 DNS 中增加一条 A 解析,设置为:192.0.2.1 并通过 CDN 减速。

API

PUT /pv?slug=optional

QueryString 参数:

  • slug:string 可选

如果不传,或传入 total,则返回为总计点击量。

{
  "result": {
    "slug": "total",
    "pv": 10
  }
}

P.S. 其中,GET 申请也能够拜访,但仅当 PUT 申请时,会额定将拜访计数累加。

GET /list?slugs=optional,optional

QueryString 参数:

  • slugs:string 可选,请将 string[] 用 , 分隔

如果不传,则返回为总计点击量。

{
  "result": [
    {
      "slug": "total",
      "pv": 10
    },
    // ...
  ]
}

LICENSE

Apache License 2.0

正文完
 0