【发布时间】:2021-11-01 19:22:45
【问题描述】:
我正在尝试在用于 http 转码到 GRPC API 的特使实例上定义 local_reply_config。我的 envoy-config.yaml 如下所示。我的问题是,一旦我定义了 local_reply_config 部分,特使就不再开始抛出下面的错误。知道我在这里做错了什么吗?
m-api-envoy_1 | [2021-11-01 15:06:51.700][9][warning][misc] [bazel-out/k8-opt/bin/source/extensions/common/_virtual_includes/utility_lib/extensions/common/utility.h:65] Using deprecated extension name 'envoy.http_connection_manager' for 'envoy.filters.network.http_connection_manager'. This name will be removed from Envoy soon. Please see https://www.envoyproxy.io/docs/envoy/latest/version_history/version_history for details.
m-api-envoy_1 | [2021-11-01 15:06:51.712][9][critical][main] [source/server/server.cc:102] error initializing configuration '/etc/envoy.yaml': Protobuf message (type envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager reason INVALID_ARGUMENT:(http_filters[0]) config: Cannot find field.) has unknown fields
m-api-envoy_1 | [2021-11-01 15:06:51.713][9][info][main] [source/server/server.cc:731] exiting
m-api-envoy_1 | Protobuf message (type envoy.extensions.filters.network.http_connection_manager.v3.HttpConnectionManager reason INVALID_ARGUMENT:(http_filters[0]) config: Cannot find field.) has unknown fields
m-api_m-api-envoy_1 exited with code 1
===
admin:
access_log_path: /tmp/admin_access.log
address:
socket_address: { address: 0.0.0.0, port_value: 9901 }
static_resources:
listeners:
- name: m-api-listener
address:
socket_address: { address: 0.0.0.0, port_value: 51051 }
filter_chains:
- filters:
- name: envoy.http_connection_manager
config:
stat_prefix: grpc_json
codec_type: AUTO
route_config:
name: local_route
virtual_hosts:
- name: local_service
domains: ["*"]
routes:
- match: { prefix: "/v4/api-docs"}
route: { prefix_rewrite: "/v2/api-docs", cluster: swagger-backend-services, timeout: { seconds: 1500 } }
- match: { prefix: "/v4/swagger-ui"}
route: { prefix_rewrite: "/", cluster: swagger-backend-services, timeout: { seconds: 1500 } }
- match: { prefix: "/", grpc: {} }
route: { cluster: grpc-backend-services, timeout: { seconds: 600 } }
http_filters:
- name: envoy.grpc_json_transcoder
config:
proto_descriptor: "/data/m-api.pb"
services: ["m.api.MAPI"]
print_options:
add_whitespace: true
always_print_primitive_fields: true
always_print_enums_as_ints: false
preserve_proto_field_names: false
- name: envoy.router
local_reply_config:
mappers:
- filter:
status_code_filter:
comparison:
op: EQ
value:
default_value: 500
runtime_key: key_b
status_code: 423
body:
inline_string: "Project is locked"
clusters:
- name: grpc-backend-services
connect_timeout: 150s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
dns_lookup_family: V4_ONLY
http2_protocol_options: {}
hosts:
- socket_address:
address: ${GRPC_HOST}
port_value: 9090
- name: swagger-backend-services
connect_timeout: 150s
type: STRICT_DNS
lb_policy: ROUND_ROBIN
dns_lookup_family: V4_ONLY
hosts:
- socket_address:
address: ${GRPC_HOST}
port_value: 8080
我在 envoy-alpine:v1.16.5-1.2
【问题讨论】:
标签: envoyproxy