Cloudflare Snippets 允许你在 Cloudflare 网络上运行简短的 JavaScript 代码,以自定义网站或应用程序如何处理请求和响应。借助 Snippets,你可以修改 HTTP 响应标头、实现 JWT 验证、执行复杂的 重定向 等。
有关针对常见用例的代码示例,请参阅 示例 部分。
要创建并部署 snippet,你需要定义以下元素:
- Snippet 规则:一个 筛选表达式,用于确定将对该 Snippet 应用哪些请求。每个 snippet 只能与一条 snippet 规则关联。
- 代码 snippet:当请求匹配关联的 snippet 规则时,在 Cloudflare 网络上运行的 JavaScript 代码。
更多信息请参阅 Snippets 的工作原理 和 在仪表板中创建 snippet。
Cloudflare 为常见用例提供规则模板。
-
在 Cloudflare 仪表板中,转到 Rules 概览页面。
Go to Overview ↗ -
选择 Templates(模板),然后选择一个可用模板。
你也可以参阅开发者文档中的 Examples gallery。
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
Availability | No | Yes | Yes | Yes |
Number of snippets | 0 | 25 | 50 | 300 |
Number of snippet subrequests | 0 | 2 | 3 | 5 |
重定向链中的每个 subrequest 都会计入 subrequest 限额。这意味着如果某个 subrequest 被重定向,将计为两次 subrequest。为避免问题,请确保向重定向链的最终位置发起 subrequest。
目前,Version Management 不支持 Snippets。
Cloudflare Snippets 专为在 Cloudflare 网络上运行的快速、轻量级逻辑而设计。适用以下限制:
| 描述 | 所有计划 |
|---|---|
| 最大执行时间 | 5 ms |
| 最大内存 | 2 MB |
| 最大总软件包大小 | 32 KB |
需要在 Snippets 与 Workers 之间进行选择的指导?
查看我们的 详细指南,了解最佳实践、实际用例和示例实现。
Rules 功能的执行顺序如下:
- Single Redirects(单一重定向)
- URL Rewrite Rules(URL 重写规则)
- Configuration Rules(配置规则)
- Origin Rules(源站规则)
- Bulk Redirects(批量重定向)
- Managed Transforms(托管转换)
- Request Header Transform Rules(请求标头转换规则)
- Cache Rules(缓存规则)
- Snippets(代码片段)
- Cloud Connector(Cloud Connector)
上述不同类型的规则优先于 Page Rules(页面规则)。这意味着当 Page Rules 与上述 Rules 产品同时匹配时,Page Rules 会被覆盖。
一般来说,对于非终止动作,同一阶段中规则所做的最后一次更改将生效(后续规则可以覆盖之前规则所做的更改)。但对于终止动作(Block、Redirect 或任一质询动作),规则评估将停止,并立即执行该动作。
例如,如果多个带有 Redirect 动作的规则匹配,Cloudflare 将始终使用第一条匹配规则的 URL 重定向。此外,如果您使用不同的 Cloudflare 产品(单次重定向和批量重定向)配置 URL 重定向,在规则匹配的情况下,最先执行的产品将生效(此处为单次重定向)。
有关产品执行顺序,请参阅阶段列表。