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

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

前提

項目 バージョン
OS Ubuntu-20-04
grpcurl 1.8.6

evansほど高機能なツールではないですが、GRPC版のcurlコマンドです。

インストール

Linux(Ubuntu-20.04)環境にhomebrewをインストールする」参照

GRPCサーバ起動(Node-RED)

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

サーバ URL
Node-RED localhost:1880
GRPC Server localhost:8082

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

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

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

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

GRPCサーバ起動完了です。

grpcurlコマンドの使い方

grpcurlの使い方は以下の通りです。

もしくは以下です。

Failed to dial target host “ホスト:ポート”: tls: first record does not look like a TLS handshake

secure TLS、mutual TLSをサポートしているとの事ですが、オプション未指定の場合TLSとなるようです。

grpcurl supports both secure/TLS servers and plain-text servers (i.e. no TLS) and has numerous options for TLS configuration. It also supports mutual TLS, where the client is required to present a client certificate.

このエラーが出た場合は-plaintextオプションを使用します。

server does not support the reflection API

GRPCサーバがリフレクションをサポートしていない場合にこのエラーが出ます。

With this tool you can also browse the schema for gRPC services, either by querying a server that supports server reflection

この場合は、evansコマンド同様に.protoファイルの指定が必要になります。

GRPC call(WSL)

ではgrpcurlコマンドで呼び出します。

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

sample.proto

参考サイト

https://github.com/fullstorydev/grpcurl

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。

CAPTCHA