ExtensionChain

일치 조건과 실행할 확장 프로그램이 포함된 단일 확장 프로그램 체인 래퍼입니다.

JSON 표현
{
  "name": string,
  "matchCondition": {
    object (MatchCondition)
  },
  "extensions": [
    {
      object (Extension)
    }
  ]
}
필드
name

string

(필수 항목) 이 확장 프로그램 체인의 이름입니다. 이름은 HTTP 요청 로그의 일부로 로깅됩니다. 이름은 RFC-1034를 준수해야 하며 소문자, 숫자, 하이픈으로 제한되고 최대 길이는 63자(영문 기준)입니다. 또한 첫 번째 문자는 문자여야 하고 마지막 문자는 문자나 숫자여야 합니다.

matchCondition

object (MatchCondition)

(필수 항목) 이 체인이 요청에 호출되는 조건입니다.

extensions[]

object (Extension)

(필수 항목) 일치하는 요청에 실행할 확장 프로그램 집합입니다. 확장 프로그램이 최소 하나 이상 필요합니다. LbTrafficExtension 리소스의 확장 프로그램 체인마다 확장 프로그램을 최대 3개까지 정의할 수 있습니다. LbRouteExtension 체인은 확장 프로그램 체인당 확장 프로그램 1개로 제한됩니다.

MatchCondition

이 체인이 요청에 호출되는 조건입니다.

JSON 표현
{
  "celExpression": string
}
필드
celExpression

string

(필수 항목) 확장 프로그램 체인이 실행되는 요청을 일치시키는 데 사용되는 Common Expression Language(CEL) 표현식입니다.

자세한 내용은 CEL 일치자 언어 참조를 확인하세요.

Extension

일치하는 요청에 실행할 체인의 단일 확장 프로그램입니다.

JSON 표현
{
  "name": string,
  "authority": string,
  "service": string,
  "supportedEvents": [
    enum (EventType)
  ],
  "timeout": string,
  "failOpen": boolean,
  "forwardHeaders": [
    string
  ]
}
필드
name

string

(필수 항목) 이 확장 프로그램의 이름입니다. 이름은 HTTP 요청 로그의 일부로 로깅됩니다. 이름은 RFC-1034를 준수해야 하며 소문자, 숫자, 하이픈으로 제한되고 최대 길이는 63자(영문 기준)입니다. 또한 첫 번째 문자는 문자여야 하고 마지막 문자는 문자나 숫자여야 합니다.

authority

string

(선택사항) Envoy에서 확장 프로그램 서비스로 전송된 gRPC 요청의 :authority 헤더입니다. 콜아웃 확장 프로그램에 필요합니다.

service

string

(필수 항목) 확장 프로그램을 실행하는 서비스에 대한 참조입니다.

현재는 콜아웃 확장 프로그램만 지원됩니다.

콜아웃 확장 프로그램을 구성하려면 servicehttps://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService} 또는 https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService} 형식의 백엔드 서비스에 대한 정규화된 참조여야 합니다.

supportedEvents[]

enum (EventType)

(선택사항) 요청 또는 응답 처리 중에 이 확장 프로그램이 호출되는 이벤트 집합입니다. 이 필드는 LbTrafficExtension 리소스에 필요합니다. LbRouteExtension 리소스에 설정하면 안 됩니다.

timeout

string (Duration format)

(선택사항) 스트림의 각 개별 메시지에 대한 제한 시간을 지정합니다. 제한 시간은 10~1,000밀리초여야 합니다. 콜아웃 확장 프로그램에 필요합니다.

소수점 아래가 최대 9자리까지이고 's'로 끝나는 초 단위 기간입니다. 예를 들면 "3.5s"입니다.

failOpen

boolean

(선택사항) 확장 프로그램 호출이 실패하거나 타임아웃된 경우의 프록시 작동 방식을 결정합니다.

TRUE로 설정하면 요청 또는 응답 처리가 오류 없이 계속됩니다. 확장 프로그램 체인의 후속 확장 프로그램도 실행됩니다. FALSE로 설정되거나 기본 설정 FALSE가 사용되면 다음 중 하나가 발생합니다.

  • 응답 헤더가 다운스트림 클라이언트에 전송되지 않은 경우 클라이언트에 일반 500 오류가 반환됩니다. 부하 분산기에서 커스텀 오류 응답을 구성하여 오류 응답을 맞춤설정할 수 있습니다.

  • 응답 헤더가 전송된 경우 다운스트림 클라이언트에 대한 HTTP 스트림이 재설정됩니다.

forwardHeaders[]

string

(선택사항) 클라이언트 또는 백엔드에서 확장 프로그램으로 전달할 HTTP 헤더의 목록입니다. 생략하면 모든 헤더가 전송됩니다. 각 요소는 헤더 이름을 나타내는 문자열입니다.

EventType

확장 프로그램이 호출되는 요청이나 응답의 일부입니다.

열거형
EVENT_TYPE_UNSPECIFIED 지정되지 않은 값입니다. 사용하지 마세요.
REQUEST_HEADERS supportedEvents에 포함된 경우 HTTP 요청 헤더가 도착하면 확장 프로그램이 호출됩니다.
REQUEST_BODY supportedEvents에 포함된 경우 HTTP 요청 본문이 도착하면 확장 프로그램이 호출됩니다.
RESPONSE_HEADERS supportedEvents에 포함된 경우 HTTP 응답 헤더가 도착하면 확장 프로그램이 호출됩니다.
RESPONSE_BODY supportedEvents에 포함된 경우 HTTP 응답 본문이 도착하면 확장 프로그램이 호출됩니다.
REQUEST_TRAILERS supportedEvents에 포함된 경우 HTTP 요청 트레일러가 도착하면 확장 프로그램이 호출됩니다.
RESPONSE_TRAILERS supportedEvents에 포함된 경우 HTTP 응답 트레일러가 도착하면 확장 프로그램이 호출됩니다.