gRPCurl で `Failed to process proto source files.: could not parse given files:` エラーが出たときの対処方法
gRPCurl 1 を使ってリクエストを送る際に、 reflection を機能を使わずに protobufs のファイルを読み込もうとすると
Failed to process proto source files.: could not parse given files: ~ no such file or directory
とエラーがでてコマンドが実行できなかった。
対処方法としては grpcurl コマンドを実行する際に、-proto
フラグを利用するだけではなく、-import-path
フラグを指定する必要がある2。
-import-path
フラグの指定により、参照する protobufs の依存関係のパスを grpcurl に伝えることで上記のエラーが解消される。
例えば、protobufs の内部で
import "~/---.proto"
のように他の protobufs を import していると上記のエラーの発生原因となる。
つまり、-import-path
を指定しないと、import 文実行時に grpcurl 内部で、参照する protobufs の root path が不明なので、パスがうまく処理されずに import 文の実行処理がコケてしまうと理解。
関連しているかもしれない記事
📮 📧 🐏: 記事への感想のおたよりをおまちしてます。 お気軽にお送りください。 メールアドレス入力があればメールで返信させていただきます。 もちろんお返事を希望せずに単なる感想だけでも大歓迎です。
このサイトの更新情報をRSSで配信しています。 お好きなフィードリーダーで購読してみてください。
このウェブサイトの運営や著者の活動を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、著者の活動のモチベーションに繋がります✨
Amazonでほしいものリストも公開しているので、こちらからもサポートしていただけると励みになります。