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-Verwaltungsfunktionen von API Gateway verwenden, um Ihren gRPC-Diensten in Cloud Run Überwachung, Hosting, Ablaufverfolgung, Authentifizierung und mehr hinzuzufügen. Wenn Sie spezielle Zuordnungsregeln angeben, übersetzt API Gateway außerdem 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 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;
}
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. 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-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: