- 리소스: HttpRoute
- RouteRule
- RouteMatch
- HeaderMatch
- IntegerRange
- QueryParameterMatch
- RouteAction
- Destination
- HeaderModifier
- Redirect
- ResponseCode
- FaultInjectionPolicy
- Delay
- Abort
- URLRewrite
- RetryPolicy
- RequestMirrorPolicy
- CorsPolicy
- StatefulSessionAffinityPolicy
- HttpDirectResponse
- 메서드
리소스: HttpRoute
HttpRoute는 메시 또는 게이트웨이 리소스에 의해 HTTP 트래픽을 라우팅하는 방법을 정의하는 리소스입니다.
JSON 표현 |
---|
{
"name": string,
"selfLink": string,
"description": string,
"createTime": string,
"updateTime": string,
"hostnames": [
string
],
"meshes": [
string
],
"gateways": [
string
],
"labels": {
string: string,
...
},
"rules": [
{
object ( |
필드 | |
---|---|
name |
필수 항목. HttpRoute 리소스 이름입니다. |
selfLink |
출력 전용입니다. 이 리소스의 서버 정의 URL |
description |
선택사항. 리소스에 대한 자유 텍스트 설명입니다. 최대 길이는 1,024자(영문 기준)입니다. |
createTime |
출력 전용입니다. 리소스가 생성된 타임스탬프입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
updateTime |
출력 전용입니다. 리소스가 업데이트된 타임스탬프입니다. RFC3339 UTC 'Zulu' 형식의 타임스탬프입니다(나노초 단위, 소수점 이하 9자리). 예를 들면 |
hostnames[] |
필수 항목. 호스트 이름은 요청을 처리할 HttpRoute를 선택하기 위해 HTTP 호스트 헤더와 일치해야 하는 호스트 집합을 정의합니다. 호스트 이름은 RFC 1123에 정의된 대로 네트워크 호스트의 정규화된 도메인 이름입니다. 단, IP는 허용되지 않습니다. - 호스트 이름 앞에 와일드 카드 라벨( 호스트 이름은 '정확'(네트워크 호스트의 끝점이 없는 도메인 이름(예: RFC1035 및 RFC1123에 따라 라벨은 소문자 영숫자 문자 또는 '-'로 구성되어야 하며 영숫자 문자로 시작하고 끝나야 합니다. 다른 구두점은 허용되지 않습니다. 메시 또는 게이트웨이와 연결된 경로에는 고유한 호스트 이름이 있어야 합니다. 호스트 이름이 충돌하는 여러 경로를 연결하려고 하면 구성이 거부됩니다. 예를 들어 호스트 이름 |
meshes[] |
선택사항. 메시는 이 HttpRoute가 연결된 메시 목록을 메시에서 제공하는 요청을 라우팅하는 라우팅 규칙 중 하나로 정의합니다. 각 메시 참조는 연결된 메시는 SIDECAR 유형이어야 합니다. |
gateways[] |
선택사항. 게이트웨이는 이 HttpRoute가 연결된 게이트웨이 목록을 게이트웨이에서 제공하는 요청을 라우팅하는 라우팅 규칙 중 하나로 정의합니다. 각 게이트웨이 참조는 |
labels |
선택사항. HttpRoute 리소스와 연결된 라벨 태그 집합입니다.
|
rules[] |
필수 항목. 트래픽이 라우팅되고 처리되는 방식을 정의하는 규칙입니다. 규칙은 규칙에 지정된 RouteMatch를 기반으로 순차적으로 일치합니다. |
RouteRule
트래픽을 비교하고 트래픽이 일치할 때 트래픽을 라우팅하는 방법을 지정합니다.
JSON 표현 |
---|
{ "matches": [ { object ( |
필드 | |
---|---|
matches[] |
일치 항목 목록은 들어오는 HTTP 요청과 규칙을 일치시키는 데 사용되는 조건을 정의합니다. 각 일치는 독립적입니다. 즉, 일치 중 하나라도 충족되면 이 규칙이 일치합니다. 일치 필드가 지정되지 않으면 이 규칙은 무조건 트래픽과 일치합니다. 기본 규칙을 구성하려면 일치 항목이 지정되지 않은 규칙을 규칙 목록 끝에 추가합니다. |
action |
일치하는 트래픽을 라우팅하는 방법을 정의하는 세부 규칙입니다. |
RouteMatch
RouteMatch는 요청을 일치시키는 데 사용되는 사양을 정의합니다. 일치 유형이 여러 개 설정된 경우 모든 유형의 일치가 일치하면 이 RouteMatch가 일치합니다.
JSON 표현 |
---|
{ "ignoreCase": boolean, "headers": [ { object ( |
필드 | |
---|---|
ignoreCase |
prefixMatch 및 fullPathMatch 일치에서 대소문자를 구분할지 지정합니다. 기본값은 false입니다. |
headers[] |
일치시킬 HTTP 요청 헤더 목록을 지정합니다. 제공된 모든 헤더가 일치해야 합니다. |
queryParameters[] |
일치시킬 쿼리 파라미터 목록을 지정합니다. 모든 쿼리 파라미터가 일치해야 합니다. |
통합 필드
|
|
fullPathMatch |
HTTP 요청 경로 값은 이 값과 정확하게 일치해야 합니다. fullPathMatch, prefixMatch, regexMatch 중 하나만 사용해야 합니다. |
prefixMatch |
HTTP 요청 경로 값은 지정된 prefixMatch로 시작해야 합니다. prefixMatch는 /로 시작해야 합니다. fullPathMatch, prefixMatch, regexMatch 중 하나만 사용해야 합니다. |
regexMatch |
HTTP 요청 경로 값은 원래 URL에 제공된 쿼리 파라미터와 앵커를 삭제한 후 regexMatch로 지정된 정규 표현식을 충족해야 합니다. 정규 표현식 문법은 https://github.com/google/re2/wiki/Syntax를 참조하세요. fullPathMatch, prefixMatch, regexMatch 중 하나만 사용해야 합니다. |
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 중 하나만 설정해야 합니다. |
regexMatch |
쿼리 파라미터의 값은 regexMatch로 지정된 정규 표현식과 일치해야 합니다. 정규 표현식 문법은 https://github.com/google/re2/wiki/Syntax를 참조하세요. exactMatch, regexMatch, presentMatch 중 하나만 설정해야 합니다. |
presentMatch |
파라미터에 값이 있는지와 관계없이 요청에 쿼리 파라미터가 포함된 경우 QueryParameterMatcher가 일치하도록 지정합니다. exactMatch, regexMatch, presentMatch 중 하나만 설정해야 합니다. |
RouteAction
트래픽 라우팅 및 연결된 정책 적용을 위한 사양입니다.
JSON 표현 |
---|
{ "destinations": [ { object ( |
필드 | |
---|---|
destinations[] |
트래픽을 전달해야 하는 대상입니다. |
redirect |
이 필드를 설정하면 요청이 이 필드에 구성된 대로 전달됩니다. |
faultInjectionPolicy |
백엔드 서비스 장애에 대한 클라이언트의 복원력을 테스트하기 위해 트래픽에 도입된 결함 주입 사양입니다. 결함 주입의 일환으로 클라이언트가 백엔드 서비스에 요청을 전송할 때 백엔드 서비스로 요청을 전송하기 전에 요청의 일부에 지연이 발생할 수 있습니다. 마찬가지로 클라이언트의 요청 중 일정 비율이 중단될 수 있습니다. faultInjectionPolicy로 구성된 클라이언트는 timeout 및 retryPolicy를 무시합니다. |
requestHeaderModifier |
요청을 대상에 전송하기 전에 일치하는 요청의 헤더를 수정하기 위한 사양입니다. Destination과 RouteAction 모두에 HeaderModifiers가 설정된 경우 병합됩니다. 두 항목 간의 충돌은 구성에서 해결되지 않습니다. |
responseHeaderModifier |
응답을 클라이언트로 다시 보내기 전에 응답의 헤더를 수정하기 위한 사양입니다. Destination과 RouteAction 모두에 HeaderModifiers가 설정된 경우 병합됩니다. 두 항목 간의 충돌은 구성에서 해결되지 않습니다. |
urlRewrite |
요청을 대상에 전달하기 전에 URL을 재작성하기 위한 사양입니다. |
timeout |
선택한 경로의 제한 시간을 지정합니다. 제한 시간은 요청이 완전히 처리된 시간(즉, 스트림 종료)부터 응답이 완전히 처리될 때까지 계산됩니다. 제한 시간에는 모든 재시도 횟수가 포함됩니다. 소수점 아래가 최대 9자리까지이고 ' |
retryPolicy |
이 경로와 연결된 재시도 정책을 지정합니다. |
requestMirrorPolicy |
경로 대상에 대한 요청이 별도의 미러링된 대상에 섀도잉되는 방식에 관한 정책을 지정합니다. 프록시는 응답을 반환하기 전에 섀도 대상이 응답할 때까지 기다리지 않습니다. 섀도 서비스로 트래픽을 전송하기 전에 호스트/권한 헤더에 -shadow 서픽스가 추가됩니다. |
corsPolicy |
클라이언트 측 교차 출처 요청을 허용하는 사양입니다. |
statefulSessionAffinity |
선택사항. 쿠키 기반 스테이트풀(Stateful) 세션 어피니티를 지정합니다. |
directResponse |
선택사항. 요청과 관계없이 반환되는 정적 HTTP 응답 객체입니다. |
idleTimeout |
선택사항. 선택한 경로의 유휴 제한 시간을 지정합니다. 유휴 시간 제한은 업스트림 또는 다운스트림 연결에서 전송되거나 수신되는 바이트가 없는 기간으로 정의됩니다. 설정하지 않으면 기본 유휴 시간 제한은 1시간입니다. 0으로 설정하면 제한 시간이 사용 중지됩니다. 소수점 아래가 최대 9자리까지이고 ' |
대상
요청을 라우팅해야 하는 대상의 사양입니다.
JSON 표현 |
---|
{ "serviceName": string, "weight": integer, "requestHeaderModifier": { object ( |
필드 | |
---|---|
serviceName |
트래픽을 라우팅할 BackendService의 URL입니다. |
weight |
serviceName 필드에서 참조하는 백엔드로 전달되는 요청의 비율을 지정합니다. 이 값은 - 가중치/합계(이 대상 목록의 가중치)로 계산됩니다. 0이 아닌 값의 경우 구현에서 지원하는 정밀도에 따라 여기에 정의된 정확한 비율에서 약간의 엡실론이 있을 수 있습니다. serviceName이 하나만 지정되고 가중치가 0보다 큰 경우 트래픽의 100%가 해당 백엔드로 전달됩니다. 하나의 서비스 이름에 가중치를 지정하는 경우 모든 서비스 이름에 가중치를 지정해야 합니다. 모든 서비스에 가중치가 지정되지 않은 경우 트래픽이 모든 서비스에 동일한 비율로 분산됩니다. |
requestHeaderModifier |
선택사항. 요청을 대상에 전송하기 전에 일치하는 요청의 헤더를 수정하기 위한 사양입니다. Destination과 RouteAction 모두에 HeaderModifiers가 설정된 경우 병합됩니다. 두 항목 간의 충돌은 구성에서 해결되지 않습니다. |
responseHeaderModifier |
선택사항. 응답을 클라이언트로 다시 보내기 전에 응답의 헤더를 수정하기 위한 사양입니다. Destination과 RouteAction 모두에 HeaderModifiers가 설정된 경우 병합됩니다. 두 항목 간의 충돌은 구성에서 해결되지 않습니다. |
HeaderModifier
HTTP 요청 및 HTTP 응답에서 HTTP 헤더를 수정하기 위한 사양입니다.
JSON 표현 |
---|
{ "set": { string: string, ... }, "add": { string: string, ... }, "remove": [ string ] } |
필드 | |
---|---|
set |
키가 헤더 이름이고 값이 헤더 값인 지정된 맵으로 헤더를 완전히 덮어쓰거나 대체합니다.
|
add |
키가 헤더 이름이고 값이 헤더 값인 지정된 맵으로 헤더를 추가합니다.
|
remove[] |
목록에 지정된 헤더(헤더 이름으로 일치)를 삭제합니다. |
리디렉션
트래픽 리디렉션 사양입니다.
JSON 표현 |
---|
{
"hostRedirect": string,
"pathRedirect": string,
"prefixRewrite": string,
"responseCode": enum ( |
필드 | |
---|---|
hostRedirect |
요청에 제공된 호스트 대신 리디렉션 응답에 사용될 호스트입니다. |
pathRedirect |
요청에 제공된 경로 대신 리디렉션 응답에 사용될 경로입니다. pathRedirect는 prefixRedirect와 함께 제공할 수 없습니다. 둘 중 하나만 제공하거나 둘 다 제공하지 마세요. 둘 다 제공되지 않으면 원래 요청의 경로가 리디렉션에 사용됩니다. |
prefixRewrite |
리디렉션 중에 일치하는 프리픽스(또는 경로)를 이 값으로 전환해야 함을 나타냅니다. 이 옵션을 사용하면 요청에 따라 URL을 동적으로 만들 수 있습니다. |
responseCode |
리디렉션에 사용할 HTTP 상태 코드입니다. |
httpsRedirect |
true로 설정하면 리디렉션된 요청의 URL 스키마가 https로 설정됩니다. false로 설정하면 리디렉션된 요청의 URL 스키마가 요청의 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 |
클라이언트 요청을 중단하기 위한 사양입니다. |
지연
대상에 전송되기 전에 결함 주입의 일환으로 클라이언트 요청이 지연되는 방식을 지정합니다.
JSON 표현 |
---|
{ "fixedDelay": string, "percentage": integer } |
필드 | |
---|---|
fixedDelay |
요청을 전달하기 전에 고정 지연 시간을 지정합니다. 소수점 아래가 최대 9자리까지이고 ' |
percentage |
지연이 주입될 트래픽의 비율입니다. 값은 0~100 사이여야 합니다. |
취소
대상에 전송되기 전에 결함 주입의 일환으로 클라이언트 요청이 중단되는 방식을 지정합니다.
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[] |
이 재시도 정책이 적용되는 조건을 하나 이상 지정합니다. 유효한 값은 다음과 같습니다. 5xx: 대상 서비스가 5xx 응답 코드로 응답하거나 대상 서비스가 전혀 응답하지 않는 경우(예: 연결 해제, 재설정, 읽기 시간 초과, 연결 실패, 거부된 스트림) 프록시가 재시도합니다. gateway-error: 5xx와 유사하지만 502, 503 또는 504 응답 코드에만 적용됩니다. reset: 대상 서비스가 전혀 응답하지 않으면 프록시에서 재시도를 시도합니다(연결 해제/재설정/읽기 시간 초과). connect-failure: 대상에 연결하지 못할 경우(예: 연결 시간 초과) 프록시가 다시 시도합니다. retriable-4xx: 재시도 가능한 4xx 응답 코드의 경우 프록시가 재시도합니다. 현재 재시도 가능한 유일한 오류는 409입니다. refused-stream: 대상에서 REFUSED_STREAM 오류 코드로 스트림을 재설정하면 프록시가 다시 시도합니다. 이 재설정 유형은 재시도해도 안전함을 나타냅니다. |
numRetries |
허용되는 재시도 횟수를 지정합니다. 이 숫자는 0보다 커야 합니다. 지정하지 않으면 기본값은 1입니다. |
perTryTimeout |
재시도 시도당 0이 아닌 제한 시간을 지정합니다. 소수점 아래가 최대 9자리까지이고 ' |
RequestMirrorPolicy
요청이 별도의 미러링된 대상 서비스로 섀도잉되는 방식에 관한 정책을 지정합니다. 프록시는 섀도 서비스의 응답을 기다리지 않습니다. 섀도 서비스로 트래픽을 전송하기 전에 호스트/권한 헤더에 -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
데이터 영역에서 특정 대상 호스트를 인코딩하는 'GSSA'라는 이름의 '세션 쿠키'를 제공하고 대상 호스트가 정상적으로 작동하는 한 이 쿠키가 포함된 각 요청이 해당 호스트로 전달되는 쿠키 기반 스테이트풀(Stateful) 세션 어피니티의 사양입니다.
gRPC 프록시리스 메시 라이브러리 또는 사이드카 프록시가 세션 쿠키를 관리하지만 클라이언트 애플리케이션 코드는 세션의 각 RPC에서 다음 RPC로 쿠키를 복사하는 역할을 담당합니다.
JSON 표현 |
---|
{ "cookieTtl": string } |
필드 | |
---|---|
cookieTtl |
필수 항목. 데이터 영역에서 생성된 Set-Cookie 헤더의 쿠키 TTL 값입니다. 쿠키의 수명은 1~86,400초(24시간 포함) 사이의 값으로 설정할 수 있습니다. 소수점 아래가 최대 9자리까지이고 ' |
HttpDirectResponse
반환할 정적 HTTP 응답 객체입니다.
JSON 표현 |
---|
{ "status": integer, // Union field |
필드 | |
---|---|
status |
필수 항목. HTTP 응답의 일부로 반환할 상태입니다. 양의 정수를 입력해야 합니다. |
통합 필드 HttpBody . HTTP 응답의 일부로 반환할 본문입니다. HttpBody 은 다음 중 하나여야 합니다. |
|
stringBody |
선택사항. 응답 본문(문자열)입니다. 최대 본문 길이는 1,024자(영문 기준)입니다. |
bytesBody |
선택사항. 응답 본문(바이트)입니다. 최대 본문 크기는 4,096바이트입니다. base64 인코딩 문자열입니다. |
메서드 |
|
---|---|
|
특정 프로젝트와 위치에 새 HttpRoute를 만듭니다. |
|
단일 HttpRoute를 삭제합니다. |
|
단일 HttpRoute의 세부정보를 가져옵니다. |
|
특정 프로젝트와 위치의 HttpRoute를 나열합니다. |
|
단일 HttpRoute 매개변수를 업데이트합니다. |