envoy/filters/http/gRPC HTTP/1.1 reverse bridge
withhold_grpc_framesをtrueにすることで gRPC request/response の payload をよしなにしてくれる。
envoy -> target server (request)
protobuf の serialised message が body に渡る。
target-server -> envoy (response)
google.protobuf.Empty を返したい場合も他と同様、 length-prefixed message を返す。
したがって、 \000\000\000\000 (つまり長さ0の message)を body に渡す。
エラーを返す場合
HTTP/1.1 status code が 4xx または 5xx の場合、 UNKNOWN になる。
grpc-status が headers に含まれる場合、その値を envoy が返す。
grpc-message が headers に含まれる場合、その値を gRPC error message として envoy が返す。