gRPC-Übersicht

gRPC ist ein von Google entwickeltes leistungsstarkes, universelles Open-Source-RPC-Framework. In gRPC kann eine Clientanwendung direkt Methoden auf einer Serveranwendung auf einer anderen Maschine aufrufen, als ob sie ein lokales Objekt wäre. Dadurch wird es einfacher, verteilte Anwendungen und Dienste zu erstellen.

Einer der Hauptvorteile der Verwendung von gRPC ist die Dokumentation. Mit Ihrer Dienstkonfiguration und Ihrer API-Schnittstellenkonfiguration können Sie Referenzdokumentation für Ihre API generieren.

API-Verwaltung

Mit API Gateway für gRPC können Sie die API-Verwaltung Funktionen von API Gateway, um Monitoring, Hosting, Tracing, Authentifizierung und mehr für Ihre gRPC-Dienste in Cloud Run. Außerdem Sobald Sie spezielle Zuordnungsregeln festgelegt haben, übersetzt API Gateway RESTful JSON über HTTP. in gRPC-Anfragen. Das bedeutet, dass Sie einen von API Gateway verwalteten gRPC-Server bereitstellen und seine API mit einem gRPC oder JSON/HTTP-Client aufrufen können. Dadurch sind Sie wesentlich flexibler und die Abstimmung mit anderen Systemen wird leichter.

Sie können gRPC-Dienste für API Gateway in jeder von gRPC unterstützten Sprache erstellen. Weitere Informationen über gRPC, darunter Schnellstarts und Anleitungen zum Erstellen von Servern und Clients, finden Sie auf der gRPC-Website.

Dienstdefinition und -konfiguration

gRPC basiert auf der Idee, einen Dienst zu definieren, wobei die Methoden, die über einen Remote Call aufgerufen werden können, mit ihren Parametern und Rückmeldetypen angegeben werden. Standardmäßig nutzt gRPC Protokollzwischenspeicher als Interface Definition Language (IDL) zur Beschreibung der Dienstschnittstelle und der Struktur der Nutzlast-Nachrichten.

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}

Um gRPC mit API Gateway zu verwenden, müssen Sie eine Dienstkonfiguration zusammen mit der Dienstdefinition. Dies konfiguriert das Laufzeitverhalten Ihres Dienstes, darunter die Authentifizierung, die API(s) in dem Dienst, Zuordnungen von HTTP-Anfragen zu gRPC-Methoden und spezielle API Gateway-Einstellungen.

Transcodierung

API Gateway bietet Protokollübersetzungen für Ihre gRPC-Dienste in Cloud Run. Dadurch können Clients HTTP/JSON zur Kommunikation mit einem gRPC-Dienst über API Gateway verwenden.

Der häufigste Anwendungsfall besteht darin, Browser-Clients die Kommunikation mit gRPC-Servern ohne spezielle Unterstützung von gRPC-Clientbibliotheken zu ermöglichen. API Gateway bietet einen Mechanismus, mit dem HTTP-Anfragen als Teil der Dienstkonfiguration gRPC-Methoden zugeordnet werden.

Weitere Informationen finden Sie unter HTTP/JSON für gRPC transcodieren.

Beschränkungen

Die folgenden gRPC-Features werden in API Gateway noch nicht unterstützt:

  • Nutzlastkomprimierung
  • Andere IDLs als Protokollpuffer

API Gateway unterstützt derzeit nur Cloud Run-gRPC-Dienste.

Nächste Schritte

  • Sehen Sie sich die Beispiele an. Das Beispiel getting-started-grpc ist auf GitHub in den folgenden Sprachen verfügbar:
  • Das Bookstore-Beispiel ist in den folgenden Sprachen verfügbar: