如何解决GRPC 转码REST API 上的 502 服务器错误和 GRPC 上的 200 正常 - GKE 上的云端点
在使用 ESP 和 Cloud Endpoints api_config 文件在 GKE 上部署我的 GPRPC 服务器后,我能够正确测试(200 OK)使用 GRPC 客户端的请求,但所有使用 REST API 转码的 CURL 请求都失败并出现奇怪的:“502服务器错误 - 服务器遇到临时错误,无法完成您的请求。请在 30 秒后重试。"
我以前从来没有遇到过这个问题。看起来 Ingress 部分并不总是正确构建。有时有效,有时失败。
你有什么线索可能来自哪里吗?
解决方法
我参考了文档 Getting started with Endpoints for GKE with ESP 和 Deploying a service that uses transcoding,并在我的环境中使用 REST API 转码成功在 GKE 上部署了 GRPC 服务器,其中包含 ESP、Cloud Endpoints 和 CURL 请求。
在部署“Getting started with Endpoints for GKE with ESP”文档时,我做了如下修改:
- 使用了不需要 Ingress 服务的 grpc-bookstore 配置文件。
- 添加角色“Service Controller”和“Cloud Trace Agent”,即使节点服务帐号是 Compute Engine 默认服务帐号。
虽然Deploying a service that uses transcoding,我做了如下修改:
在python命令下使用,
python3 -m grpc_tools.protoc \
--include_imports \
--include_source_info \
--proto_path=${GOOGLEAPIS_DIR} \
--proto_path=. \
--descriptor_set_out=api_descriptor.pb \
--python_out=generated_pb2 \
--grpc_python_out=generated_pb2 \
http_bookstore.proto
创建描述符文件。
在 grpc-bookstore 的配置文件中将服务的目标端口更改为 8080。
试试这个,如果你遇到任何错误,请告诉我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。