- リソース: GrpcRoute
- RouteRule
- RouteMatch
- MethodMatch
- タイプ
- HeaderMatch
- タイプ
- RouteAction
- Destination
- FaultInjectionPolicy
- Delay
- Abort
- RetryPolicy
- StatefulSessionAffinityPolicy
- メソッド
リソース: GrpcRoute
GrpcRoute は、Mesh または Gateway リソースによってルーティングされる gRPC トラフィックのルーティング方法を定義するリソースです。
JSON 表現 |
---|
{
"name": string,
"selfLink": string,
"createTime": string,
"updateTime": string,
"labels": {
string: string,
...
},
"description": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"rules": [
{
object ( |
フィールド | |
---|---|
name |
必須。GrpcRoute リソースの名前。パターン |
selfLink |
出力専用。このリソースのサーバー定義の URL |
createTime |
出力専用。リソース作成時のタイムスタンプ。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
updateTime |
出力専用。リソース最終更新時のタイムスタンプ。 RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: |
labels |
省略可。GrpcRoute リソースに関連付けられたラベルタグのセット。
|
description |
省略可。リソースの説明(フリーテキスト)。最大長は 1,024 文字です。 |
hostnames[] |
必須。このルートがトラフィックを記述するオプションのポートを持つサービス ホスト名。 形式: Hostname は、ネットワーク ホストの完全修飾ドメイン名です。これはホスト名の RFC 1123 定義と一致しますが、2 つの注意すべき例外があります。- IP は許可されていません。- ホスト名の先頭にワイルドカード ラベル( ホスト名には、ネットワーク ホストの末尾にドットを付けないドメイン名(例: RFC1035 と RFC1123 に従って、ラベルは小文字の英数字または「-」で構成し、英数字で始まり英数字で終わる必要があります。他の句読点は使用できません。 Mesh または Gateway に関連付けられたルートには一意のホスト名が必要です。競合するホスト名を持つ複数のルートを接続しようとすると、構成は拒否されます。 たとえば、ホスト名 ポートが指定されている場合、gRPC クライアントはこのルールに一致するポートとチャネル URI を使用する必要があります(「xds:///service:123」など)。それ以外の場合は、ポートを指定せずに URI(「xds:/」など)を指定する必要があります。 |
meshes[] |
省略可。メッシュは、この GrpcRoute が接続されているメッシュのリストを、メッシュによって処理されるリクエストをルーティングするルーティング ルールの 1 つとして定義します。 各メッシュ参照は、パターン |
gateways[] |
省略可。ゲートウェイは、この GrpcRoute が接続されているゲートウェイのリストを定義します。これは、ゲートウェイによって処理されるリクエストをルーティングするルーティング ルールの 1 つです。 各ゲートウェイ参照は、パターン |
rules[] |
必須。トラフィックのルーティング方法を定義する詳細なルールのリスト。 1 つの GrpcRoute 内で、最初に一致する GrpcRoute.RouteRule に関連付けられた GrpcRoute.RouteAction が実行されます。少なくとも 1 つのルールを選択する必要があります |
RouteRule
トラフィックのルーティング方法について説明します。
JSON 表現 |
---|
{ "matches": [ { object ( |
フィールド | |
---|---|
matches[] |
省略可。matches は、受信 gRPC リクエストとルールを照合するために使用する条件を定義します。それぞれの matches は独立しています。つまり、いずれかの matches を満たすと、このルールが一致します。matches フィールドが指定されていない場合、このルールは無条件にトラフィックと一致します。 |
action |
必須。トラフィックの転送方法を定義する詳細なルール。このフィールドは必須です。 |
RouteMatch
トラフィックを照合する条件。指定したすべてのフィールドが一致すると、RouteMatch は一致していると見なされます。
JSON 表現 |
---|
{ "headers": [ { object ( |
フィールド | |
---|---|
headers[] |
省略可。照合するヘッダーのコレクションを指定します。 |
method |
省略可。照合する gRPC メソッド。このフィールドが空の場合、または省略されている場合は、すべてのメソッドを照合します。 |
MethodMatch
メソッドの照合条件を指定します。
JSON 表現 |
---|
{
"type": enum ( |
フィールド | |
---|---|
type |
省略可。名前を照合する方法を指定します。指定しない場合は、デフォルト値の「EXACT」が使用されます。 |
grpcService |
必須。照合するサービスの名前。指定しない場合は、すべてのサービスと一致します。 |
grpcMethod |
必須。照合するメソッドの名前。指定しない場合は、すべてのメソッドと一致します。 |
caseSensitive |
省略可。照合の際に大文字と小文字が区別されるように指定します。デフォルト値は true です。caseSensitive は、REGULAR_EXPRESSION のタイプと一緒に使用できません。 |
タイプ
一致のタイプ。
列挙型 | |
---|---|
TYPE_UNSPECIFIED |
未設定。 |
EXACT |
指定された正確な名前にのみ一致します。 |
REGULAR_EXPRESSION |
grpcMethod と grpcService を正規表現として解釈します。RE2 構文がサポートされています。 |
HeaderMatch
ヘッダーのコレクションと照合します。
JSON 表現 |
---|
{
"type": enum ( |
フィールド | |
---|---|
type |
省略可。ヘッダーの値との照合方法を指定します。指定しない場合は、デフォルト値の EXACT が使用されます。 |
key |
必須。ヘッダーのキー。 |
value |
必須。 - ヘッダーの値。 |
タイプ
一致のタイプ。
列挙型 | |
---|---|
TYPE_UNSPECIFIED |
未設定。 |
EXACT |
指定された正確な値にのみ一致します。 |
REGULAR_EXPRESSION |
値で指定された接頭辞に準拠するパスと一致します。RE2 構文がサポートされています。 |
RouteAction
一致したトラフィックをルーティングする方法を指定します。
JSON 表現 |
---|
{ "destinations": [ { object ( |
フィールド | |
---|---|
destinations[] |
省略可。トラフィックの転送先のサービス。複数の宛先が指定されている場合、トラフィックは、これらの宛先の weight フィールドに従ってバックエンド サービス間で分割されます。 |
faultInjectionPolicy |
省略可。宛先サービスの障害に対するクライアントの復元性をテストするために、トラフィックに導入されたフォールト インジェクションの仕様。フォールト インジェクションの一環として、クライアントが宛先にリクエストを送信すると、それらのリクエストを宛先サービスに送信する前に、一定の割合のリクエストに遅延が生じる可能性があります。同様に、クライアントからのリクエストも、リクエストの割合によって中止することができます。 timeout と retryPolicy は、faultInjectionPolicy で構成されているクライアントで無視されます |
timeout |
省略可。選択したルートのタイムアウトを指定します。リクエストが完全に処理されてから(つまりストリームの終了)、レスポンスが完全に処理されるまでのタイムアウトが計算されます。タイムアウトにはすべての再試行が含まれます。
|
retryPolicy |
省略可。このルートに関連付けられた再試行ポリシーを指定します。 |
statefulSessionAffinity |
省略可。Cookie ベースのステートフル セッション アフィニティを指定します。 |
idleTimeout |
省略可。選択したルートのタイムアウトを指定します。アイドル タイムアウトは、アップストリーム接続またはダウンストリーム接続で送受信されたバイトがない期間として定義されます。設定しない場合、デフォルトのアイドル タイムアウトは 1 時間です。0 秒に設定すると、タイムアウトは無効になります。
|
目的地
トラフィックのルーティング先となる宛先。
JSON 表現 |
---|
{ // Union field |
フィールド | |
---|---|
共用体フィールド destination_type 。トラフィックのルーティング先となる宛先の種類を指定します。destination_type は次のいずれかになります。 |
|
serviceName |
必須。トラフィックのルーティング先となる宛先サービスの URL。BackendService または ServiceDirectoryService のいずれかを参照する必要があります。 |
weight |
省略可。serviceName フィールドで参照されるバックエンドに転送されるリクエストの割合を指定します。これは、-weight/Sum(この宛先リストの重み)として計算されます。ゼロ以外の値の場合、実装がサポートする精度に応じて、ここで定義された正確な割合のイプシロンがある場合があります。 serviceName を 1 つだけ指定し、その重みが 0 より大きい場合、トラフィックの 100% がそのバックエンドに転送されます。 1 つのサービス名に重み付けを指定する場合は、すべてのサービス名に重み付けを指定する必要があります。 すべてのサービスに重み付けを指定しない場合は、トラフィックがすべてのサービスに均等に分散されます。 |
FaultInjectionPolicy
宛先サービスの障害に対するクライアントの復元性をテストするために、トラフィックに導入されたフォールト インジェクションの仕様。フォールト インジェクションの一環として、クライアントが宛先にリクエストを送信すると、それらのリクエストを宛先サービスに送信する前に、一定の割合のリクエストに遅延が生じる可能性があります。同様に、クライアントからのリクエストも、リクエストの割合によって中止することができます。
JSON 表現 |
---|
{ "delay": { object ( |
フィールド | |
---|---|
delay |
クライアント リクエストに遅延を挿入するための仕様。 |
abort |
クライアント リクエストを中止するための仕様。 |
Delay
宛先に送信される前に、フォールト インジェクションの一部としてクライアント リクエストが遅延する仕組みの指定。
JSON 表現 |
---|
{ "fixedDelay": string, "percentage": integer } |
フィールド | |
---|---|
fixedDelay |
リクエストを転送する前に固定の遅延を指定します。
|
percentage |
遅延を挿入するトラフィックの割合。 値は [0, 100] の範囲にする必要があります。 |
中止
宛先に送信される前にクライアント リクエストをフォールト インジェクションの一環として中止する方法の指定。
JSON 表現 |
---|
{ "httpStatus": integer, "percentage": integer } |
フィールド | |
---|---|
httpStatus |
リクエストの中止に使用される HTTP ステータス コード。 値は 200 以上 599 以下でなければなりません。 |
percentage |
中止されるトラフィックの割合。 値は [0, 100] の範囲にする必要があります。 |
RetryPolicy
再試行の仕様。
JSON 表現 |
---|
{ "retryConditions": [ string ], "numRetries": integer } |
フィールド | |
---|---|
retryConditions[] |
|
numRetries |
再試行回数の上限を指定します。この数値は 0 より大きい必要があります。指定しない場合は、デフォルトの 1 になります。 |
StatefulSessionAffinityPolicy
Cookie ベースのステートフル セッション アフィニティの仕様。日付プレーンは「GSSA」という名前の「セッション Cookie」を提供し、特定の宛先ホストをエンコードします。その Cookie を含む各リクエストは、宛先ホストが残っている限り、そのホストに転送されます。
gRPC プロキシレス メッシュ ライブラリまたはサイドカー プロキシがセッション クッキーを管理しますが、クライアント アプリケーション コードは、セッション内の各 RPC から次の RPC に Cookie をコピーする役割を担います。
JSON 表現 |
---|
{ "cookieTtl": string } |
フィールド | |
---|---|
cookieTtl |
必須。データプレーンによって生成された Set-Cookie ヘッダーの Cookie TTL 値。Cookie の有効期間は、1 秒~86,400 秒(24 時間)の範囲で設定できます。
|
メソッド |
|
---|---|
|
指定されたプロジェクトとロケーションで新しい GrpcRoutes を作成します。 |
|
1 つの GrpcRoute を削除します。 |
|
1 つの GrpcRoute の詳細を取得します。 |
|
指定されたプロジェクトとロケーションの GrpcRoutes を一覧で表示します。 |
|
単一の GrpcRoutes のパラメータを更新します。 |
|
指定したリソースにアクセス制御ポリシーを設定します。 |
|
指定されたリソースに対して呼び出し元が持っている権限を返します。 |