Маршрутизация посланника на основе метода gRPC и параметра - PullRequest
0 голосов
/ 10 января 2019

У меня есть файл Protobuf Routing.proto, используемый в сервисе gRPC. У меня также есть файл Envoy simple.yaml. Я пытаюсь gRPC сопоставить маршрут по методу service_B_hello (1), где 1 - это значение camera_id, заключенное в CopyImageRequest. Как я могу сделать это сопоставление маршрута в Посланнике с параметром метода camera_id в запросе?

Routing.proto:

syntax = "proto3";
package routing;
message CopyImageRequest {
    int32 camera_id = 1;
}
message CopyImageResponse {
    string result = 1;
}
service RoutingService {
    rpc service_A_hello(CopyImageRequest) returns (CopyImageResponse) {};
    rpc service_B_hello(CopyImageRequest) returns (CopyImageResponse) {};
    rpc service_C_hello(CopyImageRequest) returns (CopyImageResponse) {};
}

simple.yaml Файл посланника:

routes:
- match:
  prefix:"/routing.RoutingService/service_B_hello"
  headers:
  - name: "method"
    exact_match: "service_B_hello"
  - name: "camera_id"
    regex_match: ^[0-3]$
  - name: content-type
    exact_match: application/grpc            
  grpc: {}
  route:
    auto_host_rewrite: true
    cluster: grpc_stateless_service

ТИА

...