Shunya Ueta

gRPC client evans で portforward 先のリモートサーバーにリクエストを行う

evans

evans は対象のサーバーの gRPC のリフレクション機能が起動されていれば、proto ファイルを参照せずに便利な [REPL mode](gRPC のリフレクション機能) を使用できます。

If your server is enabling gRPC reflection, you can launch Evans with only -r (–reflection) option.

gRPC のリフレクション機能については evans 作者の ktr0731 さんが解説している記事が非常にわかりやすいです。

gRPC リフレクションはなにをしているか?

ローカルの 5000 番のポートをリモートサーバの 5000 番ポートにフォワード (port-forward)しているとします。 例えば、kubectl だと以下のような実行コマンドになります。

Forward a local port to a port on the Pod

kubectl port-forward pods/hoge-asas32s 5000:5000

そして、ポートフォワードのシェルは保持した上で、別にシェルを起動します。

この際に 対象となるlocalhost:5000 に対して、--host, --port オプションで指定してやれば evans の REPL モードが起動します。

REPL

> evans  -r --host localhost --port 5000

  ______
 |  ____|
 | |__    __   __   __ _   _ __    ___
 |  __|   \ \ / /  / _. | | '_ \  / __|
 | |____   \ V /  | (_| | | | | | \__ \
 |______|   \_/    \__,_| |_| |_| |___/

 more expressive universal gRPC client

CLI

CLI は cli というサブコマンドを追記するだけで起動できます。 シェル変数などを使って実行したい場合は、こちらが便利です。

evans  -r --host localhost --port 5000 cli list

evans で快適な gRPC ライフを楽しみましょう。

---

関連しているかもしれない記事


📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。

このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。

このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。

#grpc