- リソース: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- 宛先
- HeaderModifier
- リダイレクト
- ResponseCode
- FaultInjectionPolicy
- Delay
- Abort
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- メソッド
リソース: HttpRoute
HttpRoute は、Mesh または Gateway リソースによる HTTP トラフィックのルーティング方法を定義するリソースです。
| JSON 表現 | 
|---|
| {
  "name": string,
  "selfLink": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "hostnames": [
    string
  ],
  "meshes": [
    string
  ],
  "gateways": [
    string
  ],
  "labels": {
    string: string,
    ...
  },
  "rules": [
    {
      object ( | 
| フィールド | |
|---|---|
| name | 
 ID。HttpRoute リソースの名前です。 | 
| selfLink | 
 出力専用。このリソースのサーバー定義 URL。 | 
| description | 
 省略可。フリーテキストでのリソースの説明。最大長は 1,024 文字です。 | 
| createTime | 
 出力専用。リソース作成時のタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例:  | 
| updateTime | 
 出力専用。リソース更新時のタイムスタンプ。 RFC 3339 を使用します。生成された出力は常に Z 正規化され、小数点以下は 0、3、6、または 9 桁になります。「Z」以外のオフセットも使用できます。例:  | 
| hostnames[] | 
 必須。hostnames は、リクエストを処理する HttpRoute を選択するために HTTP ホストヘッダーと照合される一連のホストを定義します。ホスト名は、RFC 1123 で定義されているネットワーク ホストの完全修飾ドメイン名です。ただし、IP は許可されません。また、ホスト名の先頭にワイルドカード ラベル( ホスト名は、ネットワーク ホストの末尾にドットを付けない「正確」なドメイン名(例:  なお、RFC1035 および RFC1123 に従い、ラベルを小文字の英数字と「-」で作成して、先頭と末尾を英数字にする必要があります。その他の句読点は使用できません。 メッシュまたはゲートウェイに関連付けられたルートには一意のホスト名が必要です。ホスト名が競合する複数のルートを接続しようとすると、構成は拒否されます。 たとえば、ホスト名の  | 
| meshes[] | 
 省略可。meshes は、この HttpRoute が接続されるメッシュのリストを、メッシュによって処理されるリクエストをルーティングするルーティング ルールの一つとして定義します。 各メッシュの参照は  接続するメッシュのタイプは SIDECAR である必要があります | 
| gateways[] | 
 省略可。gateways は、この HttpRoute が接続されるゲートウェイのリストを、ゲートウェイによって処理されるリクエストをルーティングするルーティング ルールの一つとして定義します。 各ゲートウェイの参照は  | 
| labels | 
 省略可。HttpRoute リソースに関連付けられたラベルタグのセット。 
 | 
| rules[] | 
 必須。トラフィックのルーティング方法と処理方法を定義するルール。ルールは、そのルールに対して指定された RouteMatch に基づいて順番に照合されます。 | 
RouteRule
トラフィックを照合する方法と、一致したトラフィックをルーティングする方法を指定します。
| JSON 表現 | 
|---|
| { "matches": [ { object ( | 
| フィールド | |
|---|---|
| matches[] | 
 matches のリストは、受信 HTTP リクエストとルールを照合するために使用される条件を定義します。それぞれの条件は独立しています。つまり、matches のいずれかの条件が満たされると、このルールが一致したとみなされます。 matches フィールドが指定されていない場合、このルールは無条件にトラフィックと一致します。 デフォルト ルールを構成する場合、matches が指定されていないルールをルールリストの末尾に追加します。 | 
| action | 
 一致したトラフィックのルーティング方法を定義する詳細なルール。 | 
RouteMatch
RouteMatch は、リクエストの照合に使用する仕様を定義します。複数の照合タイプが設定されている場合、すべての照合タイプに一致した場合にこの RouteMatch が一致したとみなされます。
| JSON 表現 | 
|---|
| { "ignoreCase": boolean, "headers": [ { object ( | 
| フィールド | |
|---|---|
| ignoreCase | 
 prefixMatch と fullPathMatch の照合で大文字と小文字を区別するかどうかを指定します。デフォルト値は false です。 | 
| headers[] | 
 照合する HTTP リクエスト ヘッダーのリストを指定します。指定されたヘッダーはすべて一致する必要があります。 | 
| queryParameters[] | 
 照合するクエリ パラメータのリストを指定します。クエリ パラメータはすべて一致する必要があります。 | 
| 共用体フィールド  
 | |
| fullPathMatch | 
 HTTP リクエストパスの値は、この値と完全に一致する必要があります。 fullPathMatch、prefixMatch、regexMatch のいずれか 1 つだけを使用する必要があります。 | 
| prefixMatch | 
 HTTP リクエストパスの値は、指定された prefixMatch で始まる必要があります。prefixMatch は / で始まる必要があります。 fullPathMatch、prefixMatch、regexMatch のいずれか 1 つだけを使用する必要があります。 | 
| regexMatch | 
 HTTP リクエストパスの値は、元の URL で指定されたクエリ パラメータとアンカーを削除した後、regexMatch で指定された正規表現を満たす必要があります。正規表現の文法については、https://github.com/google/re2/wiki/Syntax をご覧ください。 fullPathMatch、prefixMatch、regexMatch のいずれか 1 つだけを使用する必要があります。 | 
HeaderMatch
HTTP リクエスト ヘッダーに基づいてルートルールを選択する方法を指定します。
| JSON 表現 | 
|---|
| { "header": string, "invertMatch": boolean, // Union field | 
| フィールド | |
|---|---|
| header | 
 照合する HTTP ヘッダーの名前。 | 
| invertMatch | 
 指定すると、一致結果はチェック前に反転されます。デフォルト値は false に設定されています。 | 
| 共用体フィールド  
 | |
| exactMatch | 
 ヘッダーの値は、exactMatch の値と完全に一致している必要があります。 | 
| regexMatch | 
 ヘッダーの値は、regexMatch で指定された正規表現と一致する必要があります。正規表現の文法については、https://github.com/google/re2/wiki/Syntax をご覧ください。 | 
| prefixMatch | 
 ヘッダーの値は、prefixMatch の値で始まる必要があります。 | 
| presentMatch | 
 headerName を含むヘッダーが存在する必要があります。ヘッダーに値があるかどうかにかかわらず、照合が行われます。 | 
| suffixMatch | 
 ヘッダーの値は、suffixMatch の値で終わる必要があります。 | 
| rangeMatch | 
 指定すると、リクエスト ヘッダー値が範囲内にある場合にルールが一致します。 | 
IntegerRange
整数値の範囲を表します。
| JSON 表現 | 
|---|
| { "start": integer, "end": integer } | 
| フィールド | |
|---|---|
| start | 
 範囲の開始(端を含む) | 
| end | 
 範囲の終了(端を含まない) | 
QueryParameterMatch
リクエストのクエリ パラメータを照合するための仕様。
| JSON 表現 | 
|---|
| { "queryParameter": string, // Union field | 
| フィールド | |
|---|---|
| queryParameter | 
 照合するクエリ パラメータの名前。 | 
| 共用体フィールド  
 | |
| exactMatch | 
 クエリ パラメータの値は、exactMatch の値と完全に一致する必要があります。 exactMatch、regexMatch、presentMatch のいずれか 1 つだけを設定する必要があります。 | 
| regexMatch | 
 クエリ パラメータの値は、regexMatch で指定された正規表現と一致する必要があります。正規表現の文法については、https://github.com/google/re2/wiki/Syntax をご覧ください。 exactMatch、regexMatch、presentMatch のいずれか 1 つだけを設定する必要があります。 | 
| presentMatch | 
 パラメータに値があるかどうかに関係なく、リクエストにクエリ パラメータが含まれる場合に QueryParameterMatcher が一致したとみなすように指定します。 exactMatch、regexMatch、presentMatch のいずれか 1 つだけを設定する必要があります。 | 
RouteAction
トラフィックのルーティングと関連ポリシーの適用のための仕様。
| JSON 表現 | 
|---|
| { "destinations": [ { object ( | 
| フィールド | |
|---|---|
| destinations[] | 
 トラフィックの転送先。 | 
| redirect | 
 設定されている場合、リクエストはこのフィールドで構成されているように転送されます。 | 
| faultInjectionPolicy | 
 バックエンド サービスの障害に対するクライアントの復元性をテストするためにトラフィックに導入されるフォールト インジェクションの仕様。フォールト インジェクションの一環として、クライアントがバックエンド サービスにリクエストを送信する前に、一定の割合のリクエストに遅延を発生させることができます。同様に、クライアントからのリクエストを一定の割合で中止することもできます。 timeout と retryPolicy は、faultInjectionPolicy で構成されているクライアントで無視されます。 | 
| requestHeaderModifier | 
 一致するリクエストを宛先に送る前にリクエストのヘッダーを変更するための仕様。HeaderModifier が Destination と RouteAction の両方に設定されている場合はマージされます。両者の競合は構成では解決されません。 | 
| responseHeaderModifier | 
 クライアントにレスポンスを返す前にレスポンスのヘッダーを変更するための仕様。HeaderModifier が Destination と RouteAction の両方に設定されている場合はマージされます。両者の競合は構成では解決されません。 | 
| urlRewrite | 
 リクエストを宛先に転送する前の書き換え URL の仕様。 | 
| timeout | 
 選択したルートのタイムアウトを指定します。リクエストが完全に処理されてから(つまり、ストリームの終了時点)、レスポンスが完全に処理されるまでのタイムアウトが計算されます。タイムアウトにはすべての再試行が含まれます。 
 | 
| retryPolicy | 
 このルートに関連付けられた再試行ポリシーを指定します。 | 
| requestMirrorPolicy | 
 ルートの宛先に対するリクエストを、別のミラーリング対象の宛先にシャドーイングする方法に関するポリシーを指定します。プロキシは、シャドウの宛先の応答を待たずにレスポンスを返します。シャドウ サービスにトラフィックを送信する前に、host/authority ヘッダーの末尾に -Shadow が付けられます。 | 
| corsPolicy | 
 クライアント サイドのクロスオリジン リクエストを許可するための仕様。 | 
| statefulSessionAffinity | 
 省略可。Cookie ベースのステートフル セッション アフィニティを指定します。 | 
| directResponse | 
 省略可。リクエストに関係なく返される静的 HTTP レスポンス オブジェクト。 | 
| idleTimeout | 
 省略可。選択したルートのアイドル タイムアウトを指定します。アイドル タイムアウトは、アップストリーム接続とダウンストリーム接続のいずれにおいても送受信されるバイトがない期間として定義されます。設定しない場合、デフォルトのアイドル タイムアウトは 1 時間です。0 秒に設定すると、タイムアウトは無効になります。 
 | 
Destination
リクエストのルーティング先となる宛先の仕様。
| JSON 表現 | 
|---|
| { "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( | 
| フィールド | |
|---|---|
| serviceName | 
 トラフィックのルーティング先となる BackendService の URL。 | 
| weight | 
 serviceName フィールドで参照されるバックエンドに転送されるリクエストの割合を指定します。これは、weight/Sum(この宛先リストの重み)で計算されます。ゼロ以外の値の場合、実装がサポートする精度によりますが、ここで定義された正確な割合からのイプシロンが発生する可能性があります。 serviceName が 1 つだけ指定されていて、その重みが 0 より大きい場合、トラフィックの 100% がそのバックエンドに転送されます。 いずれかのサービス名に重みが指定される場合、すべてのサービス名に重みを指定する必要があります。 すべてのサービスに重みを指定しない場合は、トラフィックがすべてのサービスに均等に分散されます。 | 
| requestHeaderModifier | 
 省略可。一致するリクエストを宛先に送る前にリクエストのヘッダーを変更するための仕様。HeaderModifier が Destination と RouteAction の両方に設定されている場合はマージされます。両者の競合は構成では解決されません。 | 
| responseHeaderModifier | 
 省略可。クライアントにレスポンスを返す前にレスポンスのヘッダーを変更するための仕様。HeaderModifier が Destination と RouteAction の両方に設定されている場合はマージされます。両者の競合は構成では解決されません。 | 
HeaderModifier
HTTP リクエストと HTTP レスポンス内の HTTP ヘッダーを変更するための仕様。
| JSON 表現 | 
|---|
| { "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } | 
| フィールド | |
|---|---|
| set | 
 指定されたマップでヘッダーを完全に上書きするか置き換えます。ここで、key はヘッダーの名前、value はヘッダーの値です。 
 | 
| add | 
 指定されたマップでヘッダーを追加します。ここで、key はヘッダーの名前、value はヘッダーの値です。 
 | 
| remove[] | 
 リストで指定されたヘッダー(ヘッダー名での一致)を削除します。 | 
Redirect
トラフィックのリダイレクトの仕様。
| JSON 表現 | 
|---|
| {
  "hostRedirect": string,
  "pathRedirect": string,
  "prefixRewrite": string,
  "responseCode": enum ( | 
| フィールド | |
|---|---|
| hostRedirect | 
 リクエストで指定されたホストの代わりにリダイレクト レスポンスで使用されるホスト。 | 
| pathRedirect | 
 リクエストで指定されたパスの代わりにリダイレクト レスポンスで使用されるパス。pathRedirect を prefixRedirect と一緒に指定することはできません。いずれか 1 つを指定するか、またはどちらも指定しません。どちらも指定されていない場合は、元のリクエストのパスがリダイレクトに使用されます。 | 
| prefixRewrite | 
 リダイレクト中に、一致した接頭辞(またはパス)をこの値と交換するように指定します。このオプションを使用すると、リクエストに基づいて URL を動的に作成できます。 | 
| responseCode | 
 リダイレクトに使用する HTTP ステータス コード。 | 
| httpsRedirect | 
 true に設定すると、リダイレクトされるリクエストの URL スキームが https に設定されます。false に設定した場合、リダイレクトされたリクエストの URL スキームはリクエストのものと同じになります。 デフォルトは false に設定されています。 | 
| stripQuery | 
 true に設定すると、リクエストがリダイレクトされる前に、元の URL に含まれるクエリ部分が削除されます。false に設定すると、元の URL のクエリ部分が保持されます。 デフォルトは false に設定されています。 | 
| portRedirect | 
 リダイレクトされるリクエストで、リクエストで指定されたポートの代わりに使用されるポート。 | 
ResponseCode
サポートされている HTTP レスポンス コード。
| 列挙型 | |
|---|---|
| RESPONSE_CODE_UNSPECIFIED | デフォルト値 | 
| MOVED_PERMANENTLY_DEFAULT | 301 に対応しています。 | 
| FOUND | 302 に対応しています。 | 
| SEE_OTHER | 303 に対応しています。 | 
| TEMPORARY_REDIRECT | 307 に対応しています。この場合、リクエスト メソッドは保持されます。 | 
| PERMANENT_REDIRECT | 308 に対応しています。この場合、リクエスト メソッドは保持されます。 | 
FaultInjectionPolicy
宛先サービスの障害に対するクライアントの復元力をテストするためにトラフィックに導入されるフォールト インジェクションの仕様。フォールト インジェクションの一環として、クライアントが宛先サービスにリクエストを送信する前に、クライアント プロキシによって一定の割合のリクエストに遅延を発生させることができます。同様に、クライアント プロキシによってリクエストを一定の割合で中止することもできます。
| JSON 表現 | 
|---|
| { "delay": { object ( | 
| フィールド | |
|---|---|
| delay | 
 クライアント リクエストに遅延を挿入するための仕様。 | 
| abort | 
 クライアント リクエストを中止するための仕様。 | 
Delay
宛先に送信される前にクライアント リクエストをフォールト インジェクションの一環として遅延させる方法の仕様。
| JSON 表現 | 
|---|
| { "fixedDelay": string, "percentage": integer } | 
| フィールド | |
|---|---|
| fixedDelay | 
 リクエストを転送する前の固定の遅延を指定します。 
 | 
| percentage | 
 遅延を挿入するトラフィックの割合。 値は [0, 100] の範囲にする必要があります。 | 
Abort
宛先に送信される前にクライアント リクエストをフォールト インジェクションの一環として中止する方法の仕様。
| JSON 表現 | 
|---|
| { "httpStatus": integer, "percentage": integer } | 
| フィールド | |
|---|---|
| httpStatus | 
 リクエストの中止に使用される HTTP ステータス コード。 値は 200 以上 599 以下でなければなりません。 | 
| percentage | 
 中止されるトラフィックの割合。 値は [0, 100] の範囲にする必要があります。 | 
URLRewrite
リクエストを宛先に転送する前に、リクエストの URL を変更するための仕様。
| JSON 表現 | 
|---|
| { "pathPrefixRewrite": string, "hostRewrite": string } | 
| フィールド | |
|---|---|
| pathPrefixRewrite | 
 リクエストを選択した宛先に転送する前に、リクエストパスの一致する部分がこの値に置き換えられます。 | 
| hostRewrite | 
 リクエストを選択した宛先に転送する前に、リクエストのホストヘッダーがこの値に置き換えられます。 | 
RetryPolicy
再試行の仕様。
| JSON 表現 | 
|---|
| { "retryConditions": [ string ], "numRetries": integer, "perTryTimeout": string } | 
| フィールド | |
|---|---|
| retryConditions[] | 
 この再試行ポリシーが適用される条件を 1 つ以上指定します。有効な値は次のとおりです。5xx: プロキシは、宛先サービスが 5xx レスポンス コードで応答した場合、または宛先サービスがまったく応答しない場合に再試行します(切断、リセット、読み取りタイムアウト、接続エラー、拒否されたストリームなど)。 gateway-error: 5xx に似ていますが、レスポンス コード 502、503、504 にのみ適用されます。 reset: 宛先サービスがまったく応答しない場合(切断、リセット、読み取りタイムアウト)に、プロキシが再試行します。 connect-failure: プロキシは、接続タイムアウトなどにより宛先への接続に失敗すると再試行します。 retriable-4xx: プロキシは、再試行可能な 4xx レスポンス コードの場合に再試行します。現在、再試行可能なエラーとしてサポートされているのは 409 のみです。 refused-stream: 宛先が REFUSED_STREAM エラーコードでストリームをリセットすると、プロキシが再試行します。このリセットタイプは、再試行しても安全であることを示します。 | 
| numRetries | 
 許可される再試行回数を指定します。0 より大きい値である必要があります。指定しない場合、デフォルトで 1 になります。 | 
| perTryTimeout | 
 再試行ごとのタイムアウトをゼロ以外で指定します。 
 | 
RequestMirrorPolicy
ミラーリング対象の別の宛先サービスにリクエストをシャドーイングする方法に関するポリシーを指定します。プロキシはシャドウ サービスからのレスポンスを待ちません。シャドウ サービスにトラフィックを送信する前に、host/authority ヘッダーの末尾に -Shadow が付けられます。
| JSON 表現 | 
|---|
| {
  "destination": {
    object ( | 
| フィールド | |
|---|---|
| destination | 
 リクエストがミラーリングされる宛先。宛先の重みは無視されます。 | 
| mirrorPercent | 
 省略可。目的の宛先にミラーリングされるリクエストの割合。 | 
CorsPolicy
クライアント サイドのクロスオリジン リクエストを許可するための仕様。
| JSON 表現 | 
|---|
| { "allowOrigins": [ string ], "allowOriginRegexes": [ string ], "allowMethods": [ string ], "allowHeaders": [ string ], "exposeHeaders": [ string ], "maxAge": string, "allowCredentials": boolean, "disabled": boolean } | 
| フィールド | |
|---|---|
| allowOrigins[] | 
 CORS リクエストを行えるよう許可するオリジンのリストを指定します。オリジンは、allowOrigins 内の項目または allowOriginRegexes 内の項目のいずれかに一致する場合に許可されます。 | 
| allowOriginRegexes[] | 
 許可されたオリジンと一致する正規表現パターンを指定します。正規表現の文法については、https://github.com/google/re2/wiki/Syntax をご覧ください。 | 
| allowMethods[] | 
 Access-Control-Allow-Methods ヘッダーの内容を指定します。 | 
| allowHeaders[] | 
 Access-Control-Allow-Headers ヘッダーの内容を指定します。 | 
| exposeHeaders[] | 
 Access-Control-Expose-Headers ヘッダーの内容を指定します。 | 
| maxAge | 
 プリフライト リクエストの結果をキャッシュに保存できる期間を秒単位で指定します。これは Access-Control-Max-Age ヘッダーに変換されます。 | 
| allowCredentials | 
 プリフライト リクエストへのレスポンスにおいて、これを true に設定すると、実際のリクエストにユーザー認証情報を含めることが許可されることを示します。これは Access-Control-Allow-Credentials ヘッダーに変換されます。 デフォルト値は false です。 | 
| disabled | 
 true の場合、CORS ポリシーは無効になっています。デフォルト値は false で、CORS ポリシーが有効であることを示します。 | 
StatefulSessionAffinityPolicy
Cookie ベースのステートフル セッション アフィニティの仕様。データプレーンは「GSSA」という名前の「セッション Cookie」を提供し、特定の宛先ホストをエンコードします。その Cookie を含む各リクエストは、宛先ホストが正常に稼働している限り、そのホストに転送されます。
gRPC プロキシレス メッシュ ライブラリまたはサイドカー プロキシがセッション Cookie を管理しますが、セッション内の各 RPC から次の RPC に Cookie をコピーするのはクライアント アプリケーション コードの役割です。
| JSON 表現 | 
|---|
| { "cookieTtl": string } | 
| フィールド | |
|---|---|
| cookieTtl | 
 必須。データプレーンで生成された Set-Cookie ヘッダーの Cookie TTL 値。Cookie の有効期間は、1 秒以上 86,400 秒(24 時間)以下の値に設定できます。 
 | 
HttpDirectResponse
返される静的 HTTP レスポンス オブジェクト。
| JSON 表現 | 
|---|
| { "status": integer, // Union field | 
| フィールド | |
|---|---|
| status | 
 必須。HTTP レスポンスの一部として返されるステータス。正の整数で指定する必要があります。 | 
| 共用体フィールド HttpBody。HTTP レスポンスの一部として返される本文。HttpBodyは次のいずれかになります。 | |
| stringBody | 
 省略可。文字列としてのレスポンス本文。本文の最大文字数は 1,024 文字です。 | 
| bytesBody | 
 省略可。バイトとしてのレスポンス本文。本文の最大サイズは 4,096 B です。 Base64 でエンコードされた文字列。 | 
| メソッド | |
|---|---|
| 
 | 指定されたプロジェクトとロケーションで新しい HttpRoute を作成します。 | 
| 
 | 1 つの HttpRoute を削除します。 | 
| 
 | 1 つの HttpRoute の詳細を取得します。 | 
| 
 | リソースのアクセス制御ポリシーを取得します。 | 
| 
 | 指定されたプロジェクトとロケーションの HttpRoute を一覧表示します。 | 
| 
 | 1 つの HttpRoute のパラメータを更新します。 | 
| 
 | 指定したリソースにアクセス制御ポリシーを設定します。 | 
| 
 | 指定したリソースに対して呼び出し元が持っている権限を返します。 |