kjd*_*dsf 5 .net python-3.x grpc asp.net-core azure-aks
gRpc 客户端:Python:3.8 grpcio:1.38.1
gRpc 服务器:Dotnet core 5.0 LoadBalancer AKS:1.19.7
当我的 python 客户端调用方法时,出现以下错误。非常感谢任何解决问题的帮助。
Python 代码片段
with open('chain.pem', 'rb') as f:
trusted_certs = f.read()
credentials = channel = grpc.ssl_channel_credentials(root certificates=trusted_certs)
# 10.200.3.24 is the K8S service IP with 3 replicas
channel = grpc.secure_channel('10.200.3.24:443', credentails, options=(('grpc.enable_http_proxy', 0),))
stub = query_pb2_grpc.QueryStub(channel)
empty = google_dot_protobuf_dot_empty__pb2.Empty()
data = stub.TestMethod(empty)
Run Code Online (Sandbox Code Playgroud)
错误
_InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "Empty update"
debug_error_string = "{"created":"@1625180429.368158115","description":"Failed to pick subchannel","file":"src/core/ext/filters/client_channel/client_channel.cc","file_line":3008,"referenced_errors":[{"created":"@1625178894.878505214","description":"Empty update","file":"src/core/ext/filters/client_channel/lb_policy/pick_first/pick_first.cc","file_line":201,"grpc_status":14}]}"
>
Run Code Online (Sandbox Code Playgroud)
现在这个问题已经解决了。更新是否对遇到类似问题的人有帮助。首先使用以下两个导出启用 gRpc 跟踪,然后运行您的代码以详细查看错误。
export GRPC_TRACE=all
export GRPC_VERBOSITY=DEBUG
Run Code Online (Sandbox Code Playgroud)
就我而言,出现以下错误
handshake failed: {"created":"@1582571630.967438000","description":"Peer
name 10.200.3.24 is not in peer certificate", "file":
"src/core/lib/security/security_connector/ssl/ssl_security_connector.cc",
"file_line":55}
Run Code Online (Sandbox Code Playgroud)
我的服务器自签名证书(主题:/C=US/ST=US/O=自签名/CN=10.100.3.250)没有 subjectAltName 扩展名。添加 subjectAltName 扩展名(IP.1=10.100.3.250)后,一切开始正常工作。
| 归档时间: |
|
| 查看次数: |
13225 次 |
| 最近记录: |