본문으로 건너뛰기

EnvoyFilter로 외부 프로세서와 통신하기

ExternalProcessor

spec:
configPatches:
- applyTo: HTTP_FILTER
match:
listener:
filterChain:
filter:
name: "envoy.filters.network.http_connection_manager"
patch:
operation: INSERT_FIRST
value:
name: envoy.filters.http.ext_proc
typed_config:
"@type": type.googleapis.com/envoy.extensions.filters.http.ext_proc.v3.ExternalProcessor
grpc_service:
envoy_grpc:
cluster_name: outbound|<port>||<name>.<namespace>.svc.cluster.local
failure_mode_allow: false
allow_mode_override: true
processing_mode:
request_body_mode: "FULL_DUPLEX_STREAMED"
response_header_mode: "SKIP"
  • grpc_service
  • allow_mode_override: false
    • true로 설정하면 ProcessingResponse.mode_override에 따라 processing_mode를 변경할 수 있습니다.
  • processing_mode
    • request_header_mode: SEND|SKIP
    • request_body_mode: NONE|STREAMED|BUFFERED|BUFFERED_PARTIAL|FULL_DUPLEX_STREAMED
    • request_trailer_mode: SKIP|SEND
    • response_header_mode: SEND|SKIP
    • response_body_mode: NONE|STREAMED|BUFFERED|BUFFERED_PARTIAL|FULL_DUPLEX_STREAMED
    • response_trailer_mode: SKIP|SEND