クイックスタート
このガイドでは、簡単な動作例を使ってgRPC-Webを使い始めることができます。
クイックスタート
このガイドでは、簡単な動作例を使ってgRPC-Webを使い始めることができます。
前提条件
Docker Composeファイルのバージョン3をサポートするDockerと
docker-compose
。Docker Compose file version 3 インストール手順については、Install Composeをご覧ください。
サンプルコードを入手する
サンプルコードは、grpc-webリポジトリの一部です。
リポジトリをzipファイルとしてダウンロードして解凍するか、リポジトリをクローンします。
$ git clone https://github.com/grpc/grpc-web
リポジトリのルートディレクトリに移動します
$ cd grpc-web
ブラウザからEchoのサンプルを実行する!
grpc-web
ディレクトリから
必要なパッケージとツールを取得します
$ docker-compose pull prereqs node-server envoy commonjs-client
注記
次の警告が表示された場合は、サンプルアプリの実行を目的とする限り無視できます。
WARNING: Some service image(s) must be built from source
バックグラウンドプロセスとしてサービスを起動します
$ docker-compose up -d node-server envoy commonjs-client
ブラウザから
- localhost:8081/echotest.htmlにアクセスしてください。
- テキスト入力ボックスに「Hello」などのメッセージを入力します。
- 送信ボタンを押します。
入力ボックスの下にサーバーがあなたのメッセージをエコーバックしているのがわかります。
おめでとうございます!gRPCを使用してクライアントサーバーアプリケーションを実行しました。
完了したら、次のコマンドを実行して、以前に起動したサービスをシャットダウンしてください。
$ docker-compose down
何が起こっているのか?
このサンプルアプリには、3つの主要なコンポーネントがあります。
node-server
は、Nodeで実装された標準のgRPCサーバーです。このサーバーはポート:9090
でリッスンし、アプリのビジネスロジック(クライアントメッセージのエコー)を実装します。envoy
はEnvoyプロキシです。:8080
でリッスンし、ブラウザのgRPC-Webリクエストをポート:9090
に転送します。commonjs-client
:このコンポーネントは、protoc-gen-grpc-web
protocプラグインを使用してクライアントスタブクラスを生成し、webpack
を使用してすべてのJS依存関係をコンパイルし、簡単なWebサーバーを使用して静的コンテンツ(echotest.html
とdist/main.js
)をポート:8081
でホストします。Webページから入力されたユーザーメッセージは、gRPC-webリクエストとしてEnvoyプロキシに送信されます。
次にすること
- 基本チュートリアルを順に進めてください。
最終更新日: 2021年10月14日: Echoサンプルを実行するためのDocker命令を更新 (#882) (3568b8e)