---
schema_version: "1"
id: fc9cb869d6ae7755d93842a8dbff1d2dcf7fffe3ddc484a9a79961bba5351b0b
title: 複数のアップストリームサービスのトラフィック管理
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/gateway/1.9/policies-included-traffic-management-route.md
canonical_url: https://docs.mulesoft.com/jp/gateway/1.9/policies-included-traffic-management-route
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 9ea6c5985d578526ba243fe31c02bef232ca127db24cb6187ed5322da45b34ee
description: MuleSoft Documentation Site
release: "1.9"
latest: false
---
# 複数のアップストリームサービスのトラフィック管理

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>ポリシー名</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>複数のアップストリームサービスのトラフィック管理</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>概要</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>1 つのコンシューマーエンドポイントから複数のアップストリームサービスへの API インスタンストラフィックを管理する</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-right valign-top"><p class="tableblock"><strong>使用可能な最小 Flex Gateway バージョン</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>v1.0.0</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-right valign-middle" rowspan="4"><p class="tableblock"><strong>返される状況コード</strong></p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このポリシーの戻りコードは存在しません。</p>
</div></div></td>
</tr>
</tbody>
</table>

<table>
<tbody><tr>
<td class="icon">
<i class="fa icon-note" title="Note"></i>
</td>
<td class="content">
<div class="paragraph">
<p>次の情報は、ローカルモードで実行されている Flex Gateway にのみ適用されます。接続モードで実行されている Flex Gateway 用に複数のアップストリームサービスを設定するには、​<a href="https://docs.mulesoft.com/jp/api-manager/latest/create-instance-task-flex#traffic-management" class="xref page">「Multiple Upstream Services for Flex Gateway Running in Connected Mode (接続モードで実行されている Flex Gateway 用の複数のアップストリームサービス)」</a>​を参照してください。</p>
</div>
</td>
</tr>
</tbody></table>

## [](#概要)概要

Flex Gateway は、トラフィックを複数のアップストリームサービスに転送できるさまざまなルートを使用して要求トラフィックを管理します。Flex Gateway はルート順と各ルートのルールを使用してトラフィックをルートに転送します。さらに、ルート内の各アップストリームサービスに加重率を追加してアップストリームサービスに送信される要求の割合を管理できます。加重率の追加については、[複数のアップストリームサービスポリシーのトラフィック管理 (加重)](https://docs.mulesoft.com/jp/gateway/1.9/policies-included-traffic-management)を参照してください。

`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

<table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">パラメーター</th>
<th class="tableblock halign-left valign-top">必須または省略可能</th>
<th class="tableblock halign-left valign-top">デフォルト値</th>
<th class="tableblock halign-left valign-top">説明</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>destinationPath</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>"/"</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>アップストリームサービスのパス</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>destinationRef.name</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>必須</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>なし</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>Service</code>​ 設定リソースで定義されているアップストリームサービスの名前</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>destinationRef.kind</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>"Service"</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>destinationRef.namespace</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>""</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>rules</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>空</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このルートのルールセットの配列。<br>
各ルートで複数のルールセットをサポートできます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>rules.path</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>空</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>ルートがサービスできる要求パス。<br>
ルールセットごとに 1 つの「URI テンプレート正規表現」パスしか定義できません。定義済みのパスがある要求しかこのルートには送信できません。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>rules.methods</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>空</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>ルートがサービスできる要求メソッドの種別を定義する配列。<br>
ルールセットごとに複数のメソッドを選択できます。定義済みのメソッドのいずれかである要求しかこのルートには送信できません。サポートされている値は ​<code>GET</code>​、​<code>POST</code>​、​<code>PUT</code>​、​<code>PATCH</code>​、​<code>DELETE</code>​、​<code>OPTIONS</code>​、​<code>HEAD</code>​、​<code>TRACE</code>​、​<code>CONNECT</code>​ です。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>rules.headers</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>空</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>このルートが要求をサービスするために存在している必要があるヘッダーと正規表現を定義する配列。<br>
指定されたすべてのヘッダー要件を満たす要求しかこのルートには送信できません。ルールで特に定義されていない要求に存在する追加のヘッダーは無視されます。</p>
</div></div></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p><code>rules.host</code></p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>省略可能</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>空</p>
</div></div></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>ルートがサービスできる要求ホスト URL。<br>
ルールセットごとに 1 つのホスト URL しか定義できません。定義済みのホストから行われる要求しかこのルートには送信できません。</p>
</div></div></td>
</tr>
</tbody>
</table>

### [](#リソースの設定例)リソースの設定例

`spec.services`​ パラメーターが含まれない ​`ApiInstance`​ 設定を定義できます。

```yaml
apiVersion: gateway.mulesoft.com/v1alpha1
kind: ApiInstance
metadata:
  name: ingress-http
spec:
  address: http://0.0.0.0:8080/api
```

`spec.services`​ パラメーターがない場合、​`PolicyBinding`​ 設定で ​`route`​ ポリシーを定義する必要があります。

```yaml
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`​ 設定:

```yaml
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Service
metadata:
  name: orders-svc
spec:
  address: https://orders.svc.local:443/
```

## [](#要求パスの決定)要求パスの決定

次の表で、ルーティングと要求のパスの想定される変換を決定する属性の例を使用して、考えられるすべてのパラメーターの組み合わせを示しています。列は、前の設定例の属性のデータ値を参照しています。

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">ApiInstance .address .path</th>
<th class="tableblock halign-left valign-top">PolicyBinding(route) .rules .path</th>
<th class="tableblock halign-left valign-top">PolicyBinding(route) .config .destinationPath</th>
<th class="tableblock halign-left valign-top">Input Path (入力パス)</th>
<th class="tableblock halign-left valign-top">Output Path (出力パス)</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/.*</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api(/.*)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/.*</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders/api/foo/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api(/.*)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders/foo/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo/.*</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo(/.*)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo/.*</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders/foo/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo(/.*)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders/bar</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/.*</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/bar</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;no match&gt; (/api/api/foo/bar などのパスを想定)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo(/.)/bar(/.)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">&lt;empty&gt;</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/abc/bar/def</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/abc/def</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/foo(/.)/bar(/.)</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/api/foo/abc/bar/def</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">/orders/abc/def</p></td>
</tr>
</tbody>
</table>

## [](#関連情報)関連情報

- [複数のアップストリームサービスポリシーのトラフィック管理 (加重)](https://docs.mulesoft.com/jp/gateway/1.9/policies-included-traffic-management)
- [ローカルモードでの複数のアップストリームサービスを使用した API のパブリッシュ](https://docs.mulesoft.com/jp/gateway/1.9/flex-local-publish-api-multiple-services)