跳转到内容
本站为社区维护的非官方中文翻译,与 Cloudflare, Inc. 无关联。本站不提供账户登录,请勿在任何非官方站点输入您的 Cloudflare 账户信息。官方文档:developers.cloudflare.com

Worker 模板

最后更新 查看 MarkdownAgent 设置

这些模板是由 Forward 策略调用的 Worker 的起点。你可以改编它们,或使用 GatewayMiddleware.handle(request, context, next) 入口点编写自己的 Worker。每个脚本实现一项任务。

模板 作用
发送 Slack 通知 在所选请求完成时发送后台通知。
捕获截图 在独立浏览器中捕获公共页面并将图像保存到 R2。
捕获下载的文件 将附件的有界副本保存到 R2,同时将下载返回给用户。
为 HTML 页面添加水印 向 HTML 响应添加可见的用户标签。
将标头和正文存储为 JSON 在 R2 中归档所选标头以及有界的 JSON 请求和响应正文。
显示辅导页 返回说明页,而不联系原始目标。
脱敏 JSON 字段 在将应用程序请求发送到上游之前替换其中的特定字段。

使用模板

遵循设置 Forward,用模板替换直通脚本,并配置其绑定。在 Forward 策略中选择 Worker 之前先部署它。每个模板都会列出测试以及它期望的流量范围。

gateway-workers skill ↗ 为编码代理提供关于具名入口点、Gateway 上下文和验证的指导。

每个 TypeScript 模板都包含来自 @cloudflare/zt-types ↗ 的 GatewayMiddlewareContext 和 GatewayMiddlewareNext 的 import type 声明。在使用模板之前,请将此软件包作为开发依赖项安装到 Worker 项目中。每个模板都包含安装命令。

该软件包提供 Gateway 类型。继续从 cloudflare:workers 导入运行时 WorkerEntrypoint 类。import type 声明会在 TypeScript 编译时被移除。JavaScript 版本会省略它们和类型注解,因此不需要 @cloudflare/zt-types。

从测试主机和测试用户组开始。页面加载会产生多个 HTTP 请求,因此请将通知和截图限定到特定方法和路径,而不是发往某个域的每个请求。保持捕获存储桶为私有,并为保留配置 R2 生命周期规则。仅捕获组织允许你存储的数据。

后台示例使用 this.ctx.waitUntil()。它们返回用户的响应,而不等待后台操作。后台失败会被记录,并且不会更改返回的响应。后台工作有有限的执行时间。当你需要持久处理时,请使用 Queues 或 Workflows。

正文捕获使用克隆的流。缓慢的捕获消费者可能导致克隆在另一个消费者前进时缓冲数据。示例限制了捕获的字节数,但克隆并不能保证恒定内存使用或对流量零影响。请保持捕获策略范围较窄,并测试有代表性的正文大小和传输速度。

这篇文档对您有帮助吗?