使用 GreaterThan / LessThan 评估 Istio 规则匹配

Evaluating Istio rule match using GreaterThan / LessThan

看看 Istio 的功能 Rule.match, .. https://istio.io/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1/#Rule ,如何在 GreaterThan / LessThan 上进行匹配,而不是仅仅进行存在性/相等性检查

例如。我怎样才能实现这样的目标 (header value > 24)

spec:
  match: match((request.headers["some-header"] | 24) >"24") 

由于属性类型不匹配,问题中提到的规则将不起作用。


但是,可以使用 通用表达式语言 (CEL)。

您可以使用 policy.istio.io/lang 注释(将其设置为 CEL)在 istio 中启用 CEL。

然后通过Type Values from the List of Standard Definitions我们可以使用创建函数将值解析成不同的类型。

例如:int() 得到一个 string 并产生一个 int 我们可以 然后与 _>_ (int, int) -> bool.

比较