evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す

evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す

前提

項目バージョン
OSUbuntu-20-04
evans0.10.2

高機能なGRPC clientのツールです。

evansコマンドインストール

$ brew tap ktr0731/evans
$ brew install evans

GRPCサーバ起動(Node-RED)

Node-REDでGRPCサーバを作成します。(node-red-contrib-grpcモジュール使用)

サーバURL
Node-REDlocalhost:1880
GRPC Serverlocalhost:8082

evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す

GRPCサーバリフレクションが有効であれば簡単にgrpcurlやevansでメソッド呼び出しができるのですが、無効になっている場合は.protoファイルを作成する必要があります。

node-red-contrib-grpcモジュールを使用している場合は、protoファイルが存在せず、ノード内に記載しますので、同じ内容のprotoファイルを無理矢理作成します。※他に良い方法あったら教えてください(grpc-callノードを使う以外で)

Node-RED起動すればGRPCサーバも起動します。

$ node-red

GRPCサーバ起動完了です。

evans replモードで起動(WSL)

evansをreplモードで起動します。

$ evans --host localhost --proto 8082 --proto sample.proto

hostやport、.protoファイル名は適宜変更してください。

evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す

sample.protoの内容です。

syntax = "proto3";
package hello;

service Greeter {
  rpc HelloWorld(Request) returns (Reply) {}
}

message Request {
  int32 id = 1;
  string name = 2;
}

message Reply {
  string message = 1;
}

evansがreplモードで起動したらこんな画面が表示されます。

evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す

この画面が表示されたらインタラクティブにGRPC callすることができます。

  • show package
  • show service
  • show message
  • show rpc
  • show header
  • show –help

show --helpコマンド実行します。

hello.Greeter@localhost:8082> show --help
usage: show <package | service | message | rpc | header>

GRPC call(WSL)

service サービス名でサービス指定し、call メソッド名でメソッド呼び出しができます。

evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す

参考サイト

GitHub - ktr0731/evans: Evans: more expressive universal gRPC client
Evans: more expressive universal gRPC client. Contribute to ktr0731/evans development by creating an account on GitHub.

コメント

タイトルとURLをコピーしました