gRPC-Übersicht

gRPC ist ein von Google entwickeltes leistungsstarkes, universelles Open-Source-RPC-Framework. In gRPS 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. Sie können mit den Dienstkonfigurations- und API-Schnittstellenkonfigurationsdateien eine Referenzdokumentation für Ihre API generieren.

API-Verwaltung

Mit API Gateway für gRPC können Sie die API-Verwaltungsfunktionen von API Gateway verwenden, um Monitoring, Hosting, Tracing, Authentifizierung und mehr zu Ihren gRPC-Diensten in Cloud Run hinzuzufügen. Wenn Sie spezielle Zuordnungsregeln angeben, übersetzt API Gateway RESTful JSON über HTTP in gRPC-Anforderungen. 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 Programmiersprache 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;
}

Sie müssen eine Dienstkonfiguration sowie die Dienstdefinition zur Verfügung stellen, um gRPC mit API Gateway zu verwenden. 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 und ermöglicht Clients die Verwendung von HTTP/JSON für die Kommunikation mit einem gRPC-Dienst über das API-Gateway.

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-Funktionen werden noch nicht in API Gateway 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: