1.20.6.12. 3scale WebAssembly 模块 mapping_rule 对象

mapping_rule 对象是 mapping_rules 对象中的数组的一部分。

mapping_rule 对象字段指定以下信息:

  • 要匹配的 HTTP 请求方法
  • 匹配路径的模式.
  • 要报告的 3scale 方法以及要报告的数量。指定字段的顺序决定了评估顺序。

表 1.29. mapping_rule 对象字段

Name描述必需

method

指定代表 HTTP 请求方法的字符串,也称为 verb。接受的值与接受的 HTTP 方法名称之一匹配,不区分大小写。任何方法都匹配的特殊值。

pattern

与 HTTP 请求的 URI 路径组件匹配的模式。此模式遵循与 3scale 中记录的相同语法。它允许使用大括号(如 {this})之间的任意字符序列使用通配符(使用星号(*)字符)。

usages

usage 对象列表。当规则匹配时,所有带有其 deltas 的方法都会添加到发送到 3scale 的方法列表中,以进行授权和报告。

使用以下必填字段嵌入 usages 对象 :

  • name: 要报告的 method 系统名。
  • delta: method 增加的数量。

last

当成功与此规则匹配,是否应停止评估更多映射规则。

可选布尔值。默认值为 false

以下示例独立于 3scale 中方法之间的现有层次结构。也就是说,在 3scale 侧运行的任何内容都不会受到影响。例如,Hits 指标可以是全部的父项,因此它存储了 4 个命中,因为授权请求中的所有报告方法总和,并调用 3scale Authrep API 端点。

以下示例使用到匹配所有规则的路径 /products/1/soldGET 请求。

mapping_rules GET 请求示例

apiVersion: maistra.io/v1
kind: ServiceMeshExtension
metadata:
  name: threescale-wasm-auth
spec:
  config:
    ...
    mapping_rules:
      - method: GET
        pattern: /
        usages:
          - name: hits
            delta: 1
      - method: GET
        pattern: /products/
        usages:
          - name: products
            delta: 1
      - method: ANY
        pattern: /products/{id}/sold
        usages:
          - name: sales
            delta: 1
          - name: products
            delta: 1
    ...

所有 usages 都会添加到模块执行的请求中使用用量数据 3scale,如下所示:

  • 命中:1
  • 产品:2 个
  • 销售:1