全部產品
Search
文件中心

API Gateway:canary-header外掛程式

更新時間:Jan 08, 2025

canary-header外掛程式實現了按照指定比例為請求添加指定header的功能。請求添加header後會重新匹配路由,配合此外掛程式,可實現基於比例的灰階路由,而無需用戶端主動攜帶灰階header。

配置欄位

名稱

資料類型

填寫要求

預設值

描述

weighted_headers

array of object

必填

-

配置要添加的header以及其對應的權重。

weighted_headers中每一項的配置欄位說明如下:

名稱

資料類型

填寫要求

預設值

描述

added_key

string

必填

-

要添加的header key。

added_value

string

必填

-

要添加的header value。

weight

number

必填

-

要添加的header所對應的權重,單位為百分比,所有header的權重之和不能大於100。

說明

若路由權重之和不大於100,則不足100的部分代表不會添加任何header的機率。

配置樣本

全域配置

按照如下配置,所有請求中30%的請求會被添加x-higress-canary:gray的header,70%的請求會被添加x-higress-canary:base的header。

weighted_headers: 
- added_key: x-higress-canary
  added_value: gray
  weight: 30
- added_key: x-higress-canary
  added_value: base
  weight: 70

按照如下配置,所有請求中30%的請求會被添加x-higress-canary:gray的header,70%的請求不會添加任何header。

weighted_headers: 
- added_key: x-higress-canary
  added_value: gray
  weight: 30

對特定路由或網域名稱開啟

按照如下配置,對於匹配到route-a路由的請求,將會有30%的機率被添加x-higress-canary:gray的header,70%的機率被添加x-higress-canary:base的header。添加header後,請求將會重新匹配路由。例如,此時有一個路由route-a-gray,該路由的匹配規則中有一項按header匹配的規則,該規則匹配了x-higress-canary:gray。這樣將會有30%的請求將會匹配到route-a-gray,從而實現了按比例灰階的功能。

# 使用 _rules_ 欄位進行細粒度規則配置
_rules_:
# 規則一:按路由名稱匹配生效
- _match_route_:
  - route-a
  weighted_headers: 
  - added_key: x-higress-canary
    added_value: gray
    weight: 30
  - added_key: x-higress-canary
    added_value: base
    weight: 70
# 規則二:按網域名稱匹配生效
- _match_domain_:
  - "*.example.com"
  weighted_headers:
  - added_key: x-custom-header
    added_value: gray
    weight: 30
  - added_key: x-custom-header
    added_value: blue
    weight: 30
  - added_key: x-custom-header
    added_value: base
    weight: 40