evansコマンドでNode-REDのGRPCサーバのメソッドを呼び出す
前提
項目 | バージョン |
---|---|
OS | Ubuntu-20-04 |
evans | 0.10.2 |
高機能なGRPC clientのツールです。
evansコマンドインストール
$ brew tap ktr0731/evans $ brew install evans
GRPCサーバ起動(Node-RED)
Node-REDでGRPCサーバを作成します。(node-red-contrib-grpcモジュール使用)
サーバ | URL |
---|---|
Node-RED | localhost:1880 |
GRPC Server | localhost:8082 |
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ファイル名は適宜変更してください。
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モードで起動したらこんな画面が表示されます。
この画面が表示されたらインタラクティブに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 メソッド名
でメソッド呼び出しができます。
参考サイト
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.
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント