在 Cloudflare 上部署 Open Kounter
没写完,先发个草稿,等有空了再完善一下。
前言
更新博客时关注到了Open Kounter 这个项目。这玩意儿可以通过 Serverless 的方式部署在 EdgeOne 上,提供一个 API 接口来统计访问量。
兴致勃勃地点进部署页面,结果发觉是腾讯云换皮?!还要我实名认证,呃呃呃……
我太懒了。不过仔细想想,既然是 Serverless 的东西,而且我这博客是部署在 Cloudflare Pages 上面,Cloudflare 也有 Functions 和 KV 存储这种东西,所以应该也能部署在 Cloudflare 上吧?于是就有了这篇文章。
部署方法
这俩虽然有些过于相似,不过直接干上去101.0000%会部署失败,然后你就只能看见个主页,然后一点就报错。
二者的主要差异在于:
Pages Functions: 文件夹位于/edge-functions,而不是/functions。Workers KV: Cloudflare 把变量放在env对象里,而 EdgeOne 直接放在全局作用域。
这就导致了部署方法的不同。对于 Cloudflare,在部署之前我们需要先把edge-functions文件夹重命名为functions,然后想办法把OPEN_KOUNTER重定向到env.OPEN_KOUNTER。
直接替换的形式肯定是行不通的,因为文件中这个变量拉得到处都是。可以考虑在函数体的开头用globalThis:
1 | |
这样就能把OPEN_KOUNTER暴露在全局作用域了,简单省事。
考虑到每个文件中函数开头完全一致,我们可以找个特征,用replace-in-file这个工具来批量替换:
1 | |
最后的部署命令如下:
1 | |
其它的步骤和 EdgeOne 一样。Enjoy!
在 Cloudflare 上部署 Open Kounter
https://blog.fqilin.top/open-kounter-4-cloudflare/