Как отправить запросы к конечным точкам транскодера gRPC-JSON?

После этого (я думаю точно): https://www.envoyproxy.io/docs/envoy/latest/configuration/http_filters/grpc_json_transcoder_filter

Я следую конфигурации в документации, моя служба gRPC находится на :50051, а транскодер gRPC-JSON прослушивает :51051.

Я могу отправлять запросы gRPC к транскодеру:

grpcurl \
--plaintext \
--import-path=${HELLOWORLD} \
--import-path=${GOOGLEAPIS} \
--proto=helloworld/helloworld.proto \
-d '{"name":"Freddie"}' \
:51051 \
helloworld.Greeter/SayHello
{
  "message": "Hello Freddie"
}

Но я не могу определить, как правильно отправлять ему REST-запросы:

curl \
--request GET \
--header "Content-Type: application/json" \
--data '{"name":"Freddie"}' \
http://0.0.0.0:51051/helloworld.Greeter/SayHello

curl \
--header "Content-Type: application/json" \
--data '{"name":"Freddie"}' \
http://0.0.0.0:51051/say

curl \
--request GET \
--header "Content-Type: application/json" \
http://0.0.0.0:51051/say?name=Freddie

Я пробовал с | без заголовков, с --insecure и https, используя --request POST и --request GET, все безуспешно.

Все результаты в:

upstream connect error or disconnect/reset before headers. reset reason: remote reset

Был бы признателен за руководство по отладке этого типа проблем. Envoy ничего не регистрирует в stdout в соответствии с этими запросами, и консоль администратора также не содержит (очевидных) объяснений.

Спасибо!


person DazWilkin    schedule 18.05.2019    source источник


Ответы (1)


Хммм ... Я воспроизвел решение на другой машине, и оно работает:

Варианты работы:

curl \
--header "Content-Type: application/json" \
http://localhost:51051/say?name=Frederik
{
 "message": "Hello Frederik"
}

curl http://localhost:51051/say?name=Frederik
{
 "message": "Hello Frederik"
}

Нерабочие (неверные) варианты:

curl \
--header "Content-Type: application/grpc" \
http://localhost:51051/say

curl \
--data '{"name":"Henry"}' \
http://localhost:51051/say
upstream connect error or disconnect/reset before headers. reset reason: remote reset
person DazWilkin    schedule 19.05.2019