REST Resource: projects.locations.tcpRoutes

リソース: TcpRoute

TcpRoute は、Mesh / Gateway リソースによって TCP トラフィックのルーティング方法を定義するリソースです。

JSON 表現
{
  "name": string,
  "selfLink": string,
  "createTime": string,
  "updateTime": string,
  "description": string,
  "rules": [
    {
      object (RouteRule)
    }
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  }
}
フィールド
name

string

必須。TcpRoute リソースの名前。パターン projects/*/locations/global/tcpRoutes/tcp_route_name> と一致します。

createTime

string (Timestamp format)

出力専用。リソース作成時のタイムスタンプ。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

出力専用。リソース最終更新時のタイムスタンプ。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

description

string

省略可。リソースのフリーテキストの説明。最大長は 1,024 文字です。

rules[]

object (RouteRule)

必須。トラフィックのルーティングと処理方法を定義するルール。RouteRule を少なくとも 1 つ指定する必要があります。複数のルールがある場合は、最初に一致したルールのアクションが実行されます。

meshes[]

string

省略可。メッシュは、この TcpRoute が接続されているメッシュのリストを、メッシュによって処理されるリクエストをルーティングするルーティング ルールの一つとして定義します。

各メッシュ参照は、projects/*/locations/global/meshes/<mesh_name> というパターンに一致する必要があります。

接続するメッシュは SIDECAR である必要があります

gateways[]

string

省略可。ゲートウェイは、この TcpRoute が接続されているゲートウェイのリストを、ゲートウェイによって処理されるリクエストをルーティングするルーティング ルールの 1 つとして定義します。

各ゲートウェイ参照は、パターン projects/*/locations/global/gateways/<gateway_name> と一致している必要があります。

labels

map (key: string, value: string)

省略可。TcpRoute リソースに関連付けられたラベルタグのセット。

"key": value ペアのリストを含むオブジェクト。例: { "name": "wrench", "mass": "1.3kg", "count": "3" }

RouteRule

トラフィックをマッチングする方法と、トラフィックが一致した場合にトラフィックをルーティングする方法を指定します。

JSON 表現
{
  "matches": [
    {
      object (RouteMatch)
    }
  ],
  "action": {
    object (RouteAction)
  }
}
フィールド
matches[]

object (RouteMatch)

省略可。RouteMatch は、リクエストを特定のアクションとマッチングするために使用する述語を定義します。複数のマッチタイプは評価時に「OR」で結合されます。routeMatch フィールドが指定されていない場合、このルールは無条件にトラフィックをマッチングします。

action

object (RouteAction)

必須。マッチングしたトラフィックのルーティング方法を定義する詳細なルール。

RouteMatch

RouteMatch は、リクエストを特定のアクションとマッチングするために使用する述語を定義します。複数のマッチタイプは評価時に「OR」で結合されます。routeMatch フィールドが指定されていない場合、このルールは無条件にトラフィックをマッチングします。

JSON 表現
{
  "address": string,
  "port": string
}
フィールド
address

string

必須。CIDR 範囲形式で指定する必要があります。CIDR 範囲は、IP アドレスとプレフィックス長で構成され、サブネット マスクを構成します。デフォルトでは、プレフィックス長は 32 です(つまり、単一の IP アドレスに一致します)。IPV4 アドレスのみサポートされています。例: "10.0.0.1" - この IP アドレスと完全に一致します。"10.0.0.0/8" - 10.0.0.0 サブネットと 255.255.255.0 マスク内の任意の IP アドレスと一致します。"0.0.0.0/0" - 任意の IP アドレスと一致します。

port

string

必須。照合対象となる宛先ポートを指定します。

RouteAction

トラフィックのルーティングと関連ポリシーの適用に関する仕様。

JSON 表現
{
  "destinations": [
    {
      object (RouteDestination)
    }
  ],
  "originalDestination": boolean,
  "idleTimeout": string
}
フィールド
destinations[]

object (RouteDestination)

省略可。トラフィックの宛先のサービス。少なくとも 1 つの宛先サービスが必要です設定できるのは、ルートの宛先または元の宛先のいずれか 1 つだけです。

originalDestination

boolean

省略可。true の場合、Router は、元の接続の宛先 IP とポートをリクエストの宛先として使用します。デフォルト値は False です。設定できるのは、ルートの宛先または元の宛先のいずれか 1 つだけです。

idleTimeout

string (Duration format)

省略可。選択したルートのタイムアウトを指定します。アイドル タイムアウトは、アップストリーム接続またはダウンストリーム接続で送受信されたバイトがない期間として定義されます。設定しない場合、デフォルトのアイドル タイムアウトは 30 秒です。0 秒に設定すると、タイムアウトは無効になります。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

RouteDestination

トラフィックのルーティング先となる宛先を記述します。

JSON 表現
{
  "serviceName": string,
  "weight": integer
}
フィールド
serviceName

string

必須。トラフィックのルーティング先となる BackendService の URL。

weight

integer

省略可。serviceName フィールドによって参照されるバックエンドに転送されたリクエストの割合を指定します。これは、- weight/Sum(この宛先リストの重み)として計算されます。ゼロ以外の値の場合、実装でサポートされている精度に応じて、ここで定義されている正確な割合から ε が存在することがあります。

serviceName が 1 つだけ指定され、その重みが 0 より大きい場合、トラフィックの 100% がそのバックエンドに転送されます。

いずれかのサービス名に重みを指定する場合は、すべてのサービス名に指定する必要があります。

すべてのサービスで重みが指定されていない場合、トラフィックはすべてのサービスに均等に分配されます。

メソッド

create

指定されたプロジェクトとロケーションで新しい TcpRoute を作成します。

delete

1 つの TcpRoute を削除します。

get

1 つの TcpRoute の詳細を取得します。

list

指定されたプロジェクトとロケーションの TcpRoute を一覧で表示します。

patch

1 つの TcpRoute のパラメータを更新します。