Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将gRPC服务器/客户端部署到heroku?_Python_Heroku_Deployment_Grpc - Fatal编程技术网

Python 如何将gRPC服务器/客户端部署到heroku?

Python 如何将gRPC服务器/客户端部署到heroku?,python,heroku,deployment,grpc,Python,Heroku,Deployment,Grpc,我将我的python gRPC服务器部署到Heroku,并想知道如何使用本地python客户端对其进行测试 server.py client.py 我正在从我的计算机使用客户端,没有收到服务器的任何响应。如果服务器在本地启动,我能够成功地与服务器通信。我做错了什么?Heroku HTTP 2。另一方面,GRPC使用基于http/2的传输。我认为这就是为什么您可以在本地连接它,但不能从Heroku连接。您对gRPC是否卷入问题有多大把握?你在Heroku环境中运行过普通的HTTP服务器并能够连接到

我将我的python gRPC服务器部署到Heroku,并想知道如何使用本地python客户端对其进行测试

server.py

client.py


我正在从我的计算机使用客户端,没有收到服务器的任何响应。如果服务器在本地启动,我能够成功地与服务器通信。我做错了什么?

Heroku HTTP 2。另一方面,GRPC使用基于
http/2
的传输。我认为这就是为什么您可以在本地连接它,但不能从Heroku连接。

您对gRPC是否卷入问题有多大把握?你在Heroku环境中运行过普通的HTTP服务器并能够连接到它吗?@NathanielmanistataatGoogle非常肯定,我能够成功地与普通服务器通信。gRPC应用程序在本地也运行良好。gRPC并不是有问题,我只是不确定如何部署它并连接到服务器。
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()
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)