Flex Gateway新着情報
Governance新着情報
Monitoring API Managerポリシー名 |
複数のアップストリームサービスのトラフィック管理 |
概要 |
1 つのコンシューマーエンドポイントから複数のアップストリームサービスへの API インスタンストラフィックを管理する |
使用可能な最小 Flex Gateway バージョン |
v1.0.0 |
返される状況コード |
このポリシーの戻りコードは存在しません。 |
|
次の情報は、ローカルモードで実行されている Flex Gateway にのみ適用されます。接続モードで実行されている Flex Gateway 用に複数のアップストリームサービスを設定するには、「Multiple Upstream Services for Flex Gateway Running in Connected Mode (接続モードで実行されている Flex Gateway 用の複数のアップストリームサービス)」を参照してください。 |
Flex Gateway は、トラフィックを複数のアップストリームサービスに転送できるさまざまなルートを使用して要求トラフィックを管理します。Flex Gateway はルート順と各ルートのルールを使用してトラフィックをルートに転送します。さらに、ルート内の各アップストリームサービスに加重率を追加してアップストリームサービスに送信される要求の割合を管理できます。加重率の追加については、複数のアップストリームサービスポリシーのトラフィック管理 (加重)を参照してください。
ApiInstance に spec.services が含まれていない場合に要求を Service に転送できるようにするには、複数のアップストリームサービスポリシーのトラフィック管理 (route) ポリシーを使用して PolicyBinding 設定を定義する必要があります。カスタムポリシーで要求を管理している場合は、route ポリシーを設定する必要はありません。
以下のポリシー定義とパラメーターの表を参照してください。
policyRef:
name: route
config:
destinationPath: <string> // OPTIONAL, default: "/"
destinationRef:
name: <string> // REQUIRED
kind: <string> // OPTIONAL, default: "Service"
namespace: <string> // OPTIONAL, default: ""
rules:
- path: <URL-regex> // OPTIONAL, Example: (.*)
methods: <regex-string> // OPTIONAL, Example: GET|POST
headers:
<header-name>: <regex-string> // OPTIONAL
host: <regex-string> // OPTIONAL
| パラメーター | 必須または省略可能 | デフォルト値 | 説明 |
|---|---|---|---|
|
省略可能 |
"/" |
アップストリームサービスのパス |
|
必須 |
なし |
|
|
省略可能 |
"Service" |
|
|
省略可能 |
"" |
|
|
省略可能 |
空 |
このルートのルールセットの配列。 |
|
省略可能 |
空 |
ルートがサービスできる要求パス。 |
|
省略可能 |
空 |
ルートがサービスできる要求メソッドの種別を定義する配列。 |
|
省略可能 |
空 |
このルートが要求をサービスするために存在している必要があるヘッダーと正規表現を定義する配列。 |
|
省略可能 |
空 |
ルートがサービスできる要求ホスト URL。 |
spec.services パラメーターが含まれない ApiInstance 設定を定義できます。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: ApiInstance
metadata:
name: ingress-http
spec:
address: http://0.0.0.0:8080/api
spec.services パラメーターがない場合、PolicyBinding 設定で route ポリシーを定義する必要があります。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: PolicyBinding
metadata:
name: ingress-httpbin-route
spec:
targetRef:
name: ingress-http
policyRef:
name: route
config:
destinationPath: /orders
destinationRef:
name: orders-svc
rules:
- path: /foo(/.*)
関連する Service 設定:
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Service
metadata:
name: orders-svc
spec:
address: https://orders.svc.local:443/
次の表で、ルーティングと要求のパスの想定される変換を決定する属性の例を使用して、考えられるすべてのパラメーターの組み合わせを示しています。列は、前の設定例の属性のデータ値を参照しています。
| ApiInstance .address .path | PolicyBinding(route) .rules .path | PolicyBinding(route) .config .destinationPath | Input Path (入力パス) | Output Path (出力パス) |
|---|---|---|---|---|
<empty> |
/api/.* |
<empty> |
/api/foo/bar |
/api/foo/bar |
<empty> |
/api(/.*) |
<empty> |
/api/foo/bar |
/foo/bar |
<empty> |
/api/.* |
/orders |
/api/foo/bar |
/orders/api/foo/bar |
<empty> |
/api(/.*) |
/orders |
/api/foo/bar |
/orders/foo/bar |
/api |
/foo/.* |
<empty> |
/api/foo/bar |
/foo/bar |
/api |
/foo(/.*) |
<empty> |
/api/foo/bar |
/bar |
/api |
/foo/.* |
/orders |
/api/foo/bar |
/orders/foo/bar |
/api |
/foo(/.*) |
/orders |
/api/foo/bar |
/orders/bar |
/api |
/api/foo/.* |
/orders |
/api/foo/bar |
<no match> (/api/api/foo/bar などのパスを想定) |
/api |
/foo(/.)/bar(/.) |
<empty> |
/api/foo/abc/bar/def |
/abc/def |
/api |
/foo(/.)/bar(/.) |
/orders |
/api/foo/abc/bar/def |
/orders/abc/def |