Ruby のサーバー スケルトン

前提条件

サーバーの実装に必要な Gem:

  • google-protobuf(このチュートリアルでは 3.2.X を使用)
  • grpc(このチュートリアルでは 1.2.X を使用)

サービス定義をダウンロードし、次のディレクトリ構造を作成します。

[base_dir]
├── certificates
├── lib
├── protos
    └── booking_service.proto
└── server.rb

インターフェースの説明から Ruby ライブラリを生成します。

$ cd [base_dir]
$ grpc_tools_ruby_protoc -I protos --ruby_out=lib --grpc_out=lib protos/booking_service.proto

サーバーを実装する

スケルトン コードが必要な場合は、Google のパートナー オペレーション担当者にお問い合わせください。

TLS のないサーバーをテストする

初期テストでは、TLS を無効にできます。

$ cd [base_dir]
$ ruby server.rb --disable_tls

本番環境での使用には適していません。

本番環境の証明書を構成する

サーバーで TLS を有効にするには、次のファイルが必要です。

  • certificates/server.pem: サーバーの証明書チェーン(PEM 形式)
  • certificates/server.key サーバー証明書チェーンの秘密鍵
  • certificates/trusted_client_roots.pem クライアントの認証時に信頼されるルート証明書

信頼できるクライアント ルート証明書のセットは、クライアントの認証時に使用されます。この信頼できるルートセットは、Mozilla などの認証局から取得することも、Google Internet Authority G2 が現在推奨しているルートセットをインストールすることもできます。後者の場合、ルート証明書を手動で更新しなければならないことがあります。

最終的なディレクトリ構造

[base_dir]
├── certificates
    ├── server.pem
    ├── server.key
    └── trusted_client_roots.pem
├── lib
    ├── booking_service_pb.rb
    └── booking_service_services_pb.rb
├── protos
    └── booking_service.proto
└── server.rb