すべてのプロダクト
Search
ドキュメントセンター

Microservices Engine:canary-header

最終更新日:Jan 08, 2025

canary-header プラグインは、指定された割合に基づいて、リクエストに特定のヘッダーを追加します。ヘッダーがリクエストに追加された後、ルートは再照合されます。このプラグインでクラウドネイティブ ゲートウェイを使用すると、クライアント リクエストがカナリアヘッダーを伝送する必要なく、パーセンテージベースのカナリア リリースのルーティングを実装できます。

フィールド

名前

データ型

必須

デフォルト値

説明

weighted_headers

オブジェクトの配列

はい

-

リクエストに追加されるヘッダーと、ヘッダーの重み。

次の表は、weighted_headers フィールドの構成項目について説明しています。

名前

データ型

必須

デフォルト値

説明

added_key

文字列

はい

-

リクエストに追加するヘッダーのキー。

added_value

文字列

はい

-

リクエストに追加するヘッダーの値。

weight

数値

はい

-

リクエストに追加するヘッダーの重み。単位:%。すべてのヘッダーの重みの合計は 100 を超えることはできません。

説明

すべてのヘッダーの重みの合計が 100 未満の場合、100 に満たない部分は、ヘッダーが追加されないリクエストの割合を示します。

構成例

グローバル構成

次のサンプル コードは、x-higress-canary:gray ヘッダーがリクエストの 30% に追加され、x-higress-canary:base ヘッダーがリクエストの 70% に追加されることを示しています。

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

次のサンプル コードは、x-higress-canary:gray ヘッダーがリクエストの 30% に追加され、ヘッダーが 70% のリクエストに追加されないことを示しています。

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

特定のルートまたはドメイン名に対してプラグインを有効にする

route-a ルートが一致する場合、x-higress-canary:gray ヘッダーがリクエストの 30% に追加され、x-higress-canary:base ヘッダーがリクエストの 70% に追加されます。ヘッダーが追加された後、リクエストはルートを再照合します。たとえば、route-a-gray という名前のルートのリクエストがヘッダーによってルーティングでき、x-higress-canary:gray ヘッダーが照合に使用される場合、route-a ルートのリクエストの 30% が route-a-gray ルートと一致します。このようにして、パーセンテージベースのカナリア リリースを実装できます。

# _rules_ フィールドを使用して、きめ細かいルールを構成します。
_rules_:
# ルール 1:ルート名と一致させる。
- _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
# ルール 2:ドメイン名と一致させる。
- _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