Istio:基于 Url 的条件速率限制

Istio: conditional-rate-limits based on Url

我想将条件速率限制更新为基于请求中 URL 的匹配项。

我找到了这些文档,https://istio.io/docs/reference/config/policy-and-telemetry/istio.policy.v1beta1/#Rule

但无法找到应该使用的正确属性


作为猜测,我试过了

apiVersion: config.istio.io/v1alpha2
kind: rule
metadata:
  name: quota
  namespace: istio-system
spec:
  match: match(request.uri, "/A/B/93*") == true
  actions:
  - handler: handler.memquota
    instances:
    - requestcount.quota

但是

的错误
Unable to compile match condition expression: 'unknown attribute request.uri', rule='quota.rule.istio-system',
enter code here

谢谢, 布伦特

来自 Istio Google 组的 Martin!

我认为如果您从 request.uri 更改为 request.path,事情应该开始为您工作。

这是一组支持的属性:https://istio.io/docs/reference/config/policy-and-telemetry/attribute-vocabulary/

希望对您有所帮助

速率限制配置分为两部分。

客户端 搅拌机侧

运行 以下命令使用 memquota 启用速率限制:

$ kubectl apply -f samples/bookinfo/policy/mixer-rule-productpage-ratelimit.yaml

请参阅附件 link[1] 以了解启用速率限制。

[1]https://istio.io/docs/tasks/policy-enforcement/rate-limiting/