跳转到内容
搜索文档

管理操作

最后更新 查看 MarkdownAgent 设置

操作状态

每个操作都具有以下状态之一:

状态 含义
full 您保存的、手动添加的或从架构创建的操作。完整状态(full)的操作用于匹配、记录、检测和规则。
candidate Cloudflare 从流量中发现的操作。候选状态(candidate)的操作在您手动审查之前即可用于匹配、记录、检测和规则。
shadow 存在于 Web 资产中但未用于匹配、记录、检测或规则的操作。

您无需将每个发现的操作都移动到 full 状态。候选状态的操作会自动提供操作上下文,而完整状态的操作则能让您对重要流量拥有更多控制权。

发现要求

如果某个操作没有出现在 Web 资产中,可能是 Cloudflare 在持续时间段内没有观察到足够数量的有效请求。发现(Discovery)仅处理满足以下所有要求的请求:

  • 请求必须从 Cloudflare 边缘返回 2xx 响应代码。
  • 请求不能直接来自 Cloudflare Workers。
  • 操作必须在 10 天内收到至少 500 次请求。

发现的操作

发现(Discovery)会持续从代理的 HTTP 流量中识别操作。发现通过使用路径规范化将相似的请求路径归组在一起。

例如,发现可以归组这些请求:

GET https://api.example.com/profile/238
GET https://api.example.com/profile/392

发现可以将它们归组为同一个操作:

GET api.example.com/profile/{var1}

在您手动优化发现的操作之前,这些操作已被用于匹配。这为发现的流量提供了操作上下文,而不需要您先保存每一次发现。

基于发现的匹配取决于套餐计划的可用性和系统限制。Cloudflare 目前在每个区域向边缘发送最多 3,000 个操作用于匹配。处于 full 状态的操作排在第一优先级,其次是处于 candidate 状态的操作。

流量匹配行为

Cloudflare 会在边缘将每个请求与一个操作进行匹配。当有多个操作模式可能匹配同一个请求时,更具体的那个操作会胜出。

例如,这两个操作都可以匹配 GET https://example.com/checkout/pay

GET example.com/checkout/pay
GET example.com/checkout/{var1}

Cloudflare 使用 GET example.com/checkout/pay,因为它更具体。

对于相同的方法、主机名模式和路径模式,Cloudflare 会生成相同的操作 UUID。这样在再次找到相同的操作时,可以保持操作标识的稳定。

手动添加操作

当您想要保护的流量未被发现,或者当您想自己定义操作结构时,请手动添加操作。

  1. 在 Cloudflare 仪表板中,转到突出显示了 Operations(操作) 选项卡的 Web assets(Web 资产) 页面。

    Go to Web assets ↗
  2. 选择 Add operation(添加操作)

  3. 选择 Manually add(手动添加)

  4. 选择 HTTP 方法,输入主机名模式和路径模式。

  5. 选择 Add operation(添加操作) 进行确认。

在操作模式中使用变量

手动添加操作时,使用变量可以通过一个操作匹配相似的流量。

对于路径变量,用大括号括起变量:

/api/users/{var1}/details

对于主机名变量,变量必须占据一个完整的主机名标签。Cloudflare 支持如下模式:

{hostVar1}.example.com
foo.{hostVar1}.example.com
{hostVar2}.{hostVar1}.example.com

不要在同一个标签中将主机名变量与其他字符组合使用。不支持以下模式:

foo-{hostVar1}.example.com

从架构添加操作

如果您已经维护着 OpenAPI 架构,则可以继续上传它们来创建操作。

API Shield 也使用架构上传来进行架构验证。有关更多信息,请参阅架构验证架构学习

优化操作

当当前的归组与流量的归组或保护方式不匹配时,请优化操作。

例如,您可能希望为登录和密码重置流量配置单独的操作,即使这两个路由共享部分相同的路径结构。当多个细分的操作代表相同的应用程序行为时,您可能还希望用一个更宽泛的操作来替换它们。

在进行更改之前,请审查重叠的操作。Cloudflare 将一个请求与一个操作进行匹配。宽泛的操作可以改变相似请求的归组方式,而具体的操作可以将一个流程与相关流量分离开来。

删除操作

您可以一次删除一个或批量删除操作。

  1. 在 Cloudflare 仪表板中,转到突出显示了 Operations(操作) 选项卡的 Web assets(Web 资产) 页面。

    Go to Web assets ↗
  2. 选择您要删除的操作。

  3. 选择 Delete operation(删除操作) 进行确认。

使用 Cloudflare API

您可以通过 Cloudflare API 与操作进行交互。有关更多信息,请参阅 operations API 文档

这篇文档对您有帮助吗?