0
Amazon EC2インスタンスでgRPCサーバー/クライアントを構築しようとすると問題が発生しました。Amazon EC2でgRPCサーバーを構築する
インスタンスA(プライベートIP:例:1.2.3.4)があります。一方
from concurrent import futures
import time
import math
import grpc
import helloworld_pb2
_ONE_DAY_IN_SECONDS = 60 * 60 * 24
class Greeter(helloworld_pb2.GreeterServicer):
def SayHello(self, request, context):
return helloworld_pb2.HelloReply(message='Hello, %s!' % request.name)
def serve():
server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
helloworld_pb2.add_GreeterServicer_to_server(Greeter(), server)
server.add_insecure_port('1.2.3.4:50051')
server.start()
try:
while True:
time.sleep(_ONE_DAY_IN_SECONDS)
except KeyboardInterrupt:
server.stop(0)
if __name__ == '__main__':
serve()
は、インスタンスBは、プライベートIP 2.3.4.5を持っているようサーバーコードがある、と私はそれ
from __future__ import print_function
import grpc
import helloworld_pb2
def run():
channel = grpc.insecure_channel('1.2.3.4:50051')
stub = helloworld_pb2.GreeterStub(channel)
response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'))
print("Greeter client received: " + response.message)
if __name__ == '__main__':
run()
クライアントとサーバのコードの実行にクライアントスクリプトを実行したいと思いますローカルマシン上で私はEC2クラスタ上でそれらを実行しようとするただし、クライアントがサーバー
Traceback (most recent call last):
File "helloworld_client.py", line 47, in <module>
run()
File "helloworld_client.py", line 42, in run
response = stub.SayHello(helloworld_pb2.HelloRequest(name='you'))
File "/usr/local/lib/python3.4/dist-packages/grpc/_channel.py", line 481, in __call__
return _end_unary_response_blocking(state, False, deadline)
File "/usr/local/lib/python3.4/dist-packages/grpc/_channel.py", line 432, in _end_unary_response_blocking
raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE,)>
を見つけるために失敗したスクリプトが実行されている取得する私は何をすべきか?
ありがとうございました。