如何在不请求 Cloudflare Worker 的情况下从 Cloudflare 缓存提供服务?

How to serve from Cloudflare cache without requesting the Cloudflare Worker?

我有一个 Cloudflare Worker,它的响应可以缓存很长时间。我知道我可以在 worker 内部使用 Cache API,但如果未达到 Cache TTL,我希望请求永远不会到达 worker。

对此 url 会有超过 1000 万个请求,我看不出为 Worker 付费有什么意义,大部分时间只会从缓存中获取响应 API.

我知道一个解决方法 - 只需在服务器上托管工作代码,并使用页面规则来缓存来自该源的所有内容。但我想知道我是否可以使用 Worker 作为来源,并以某种方式使 Page Rules 与它一起工作。只需设置 Page Rule 来缓存 everythig 并将 TTL 设置为 1 个月,仍然会将所有请求路由到 Worker,并且不会缓存任何内容。

目前无法执行此操作。

请务必了解这实际上是一个定价问题,而不是技术问题。 Cloudflare 已选择根据使用 Workers 服务的站点的流量水平为 Workers 定价。这个定价决定不一定基于 Cloudflare 的成本,如果您的 Worker 运行频率较低,Cloudflare 的成本也不一定会更低(因为部署成本不会改变,并且执行 worker 的成本非常低),所以Cloudflare 为基于 Worker 的站点提供折扣不一定有意义,这些站点设法从缓存中提供大部分响应。

话虽如此,Cloudflare 很可能会出于竞争或其他原因决定在未来提供此折扣。但是,目前还没有这方面的计划。

Cloudflare 论坛上有更长的解释:https://community.cloudflare.com/t/cache-in-front-of-worker/171258/8