佐藤のメモ帳

Rust, Python, Java, AWS, etc...

gRPCチュートリアルのクライアント側をFlaskで動かす

はじめに

前回の記事から少しソースを改良した。 クライアント側にFlaskを導入し、ブラウザからのリクエストに応じてレスポンスをするよう修正した。

イメージは以下の通り。

f:id:xianliang2032:20210829002008j:plain
全体図

ソース

github.com

実施

docker-compose up実施後、サーバ用コンテナに乗り込み、greeter_server.pyを実行。

satoukensuke@MacBook-Pro ~ % docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS          PORTS                                       NAMES
b082024290ec   grpc-test_client   "/entrypoint.sh /sta…"   56 minutes ago   Up 56 minutes   80/tcp, 443/tcp, 0.0.0.0:50050->50050/tcp   grpc-test_client_1
a4d3818cbe16   grpc-test_server   "python3"                2 days ago       Up 56 minutes   0.0.0.0:50051->50051/tcp                    grpc-test_server_1
satoukensuke@MacBook-Pro ~ % docker exec -it grpc-test_server_1 /bin/bash
root@SERVER:/service/server# python greeter_server.py

クライアント用コンテナに乗り込み、greeter_client.pyを実行。 Flaskが起動されたことを確認。

satoukensuke@MacBook-Pro ~ % docker exec -it grpc-test_client_1 /bin/bash
root@CLIENT:/service/client# python greeter_client.py
 * Serving Flask app "greeter_client" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:50050/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 240-189-845

ブラウザからクライアントにアクセス(http://localhost:50050/test?name=you)し、期待したレスポンス(Json形式)が表示されるのを確認した。

f:id:xianliang2032:20210829002704p:plain