2
私はPython gRPCサーバーをHerokuにデプロイし、ローカルのPythonクライアントでどのようにテストできるか不思議でした。herokuにgRPCサーバー/クライアントを配備する方法は?
server.py
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
icp_pb2_grpc.add_MyServicer_to_server(MyServicer(), server)
server_port = os.environ.get('PORT', 50051)
server.add_insecure_port('[::]:'+ str(server_port))
server.start()
print("==== SERVER RUNNING =====")
try:
while True:
time.sleep(_ONE_DAY_IN_SECONDS)
except KeyboardInterrupt:
server.stop(0)
if __name__ == '__main__':
serve()
client.py
def run():
# Is the channel url correct?
channel = grpc.insecure_channel('https://www.HEROKUURL.com:50051')
stub = my_grpc.MyStub(channel)
file = _get_file_content()
response = stub.Predict(icp_pb2.MyRequest(file_content=file))
print("received: " + response.results)
私は自分のコンピュータからクライアントを使用していますし、サーバーからの応答を受信していません。ローカルに起動されている場合は、サーバーと正常に通信できます。私は間違って何をしていますか?
gRPCがこの問題にどのように関与していますか? Heroku環境で通常のHTTPサーバーを実行し、それに接続できましたか? –
@ NathanielManistaAtGoogle私は正常なサーバーと正常に通信できました。 gRPCアプリケーションも完全にローカルで動作していました。 gRPCに問題があるわけではありません。私はそれを展開してサーバーに接続する方法が正確にはわかりません。 – 4d11