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

API Gateway:カナリアヘッダー

最終更新日:Jan 09, 2025

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

フィールド

設定アイテム

データ型

必須 / 任意

デフォルト値

説明

weighted_headers

オブジェクトの配列

対象

-

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

次の表に、weighted_headersフィールドの設定項目を示します。

設定アイテム

データ型

必須 / 任意

デフォルト値

説明

追加された_key

String

対象

-

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

added_value

String

対象

-

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

重量

数値

対象

-

リクエストに追加するヘッダーの重み。 単位: % 。 すべてのヘッダーの重みの合計は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ルートと一致します。 このようにして、パーセンテージベースのカナリアリリースを実装できます。

# Use the _rules_ field to configure fine-grained rules.
_rules_:
# Rule 1: Match a route name.
- _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
# Rule 2: Match a domain name.
- _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