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. Weitere Informationen finden Sie in der Übersicht über das Cloud Endpoints-Portal.
API-Verwaltung
Endpoints funktioniert sowohl mit Extensible Service Proxy (ESP) als auch mit Extensible Service Proxy V2 (ESPv2), um eine API-Verwaltung bereitzustellen.
Mit Endpoints für gRPC können Sie die API-Verwaltungsfunktionen von Endpoints verwenden, um Ihren gRPC-Services eine API-Konsole, Überwachung, Hosting, Ablaufverfolgung, Authentifizierung und mehr hinzuzufügen. Darüber hinaus übersetzen ESP und ESPv2 RESTful JSON über HTTP in gRPC-Anfragen, sobald Sie spezielle Zuordnungsregeln festgelegt haben. Das bedeutet, dass Sie einen von Endpoints 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 Endpoints 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.
Unterstützte Computing-Plattformen
ESP und ESPv2 sind Open-Source-Projekte. Sie stehen Ihnen unter folgenden Möglichkeiten zur Verfügung:
- Als Container in Artifact Registry.
- Das aktuelle ESP-Docker-Image finden Sie bei den ESP-Versionshinweisen.
- Das aktuelle ESPv2 Docker-Image finden Sie bei den ESPv2-Versionshinweisen.
- Als Quellcode auf GitHub.
- Einzelheiten zum Erstellen des ESP finden Sie in der ESP-README-Datei.
- Informationen zum Erstellen von ESPv2 finden Sie in der README-Datei von ESPv2.
Sie können den ESP-Container auf den folgenden Plattformen ausführen:
- Auf Compute Engine mit Docker
- Kubernetes, einschließlich Google Kubernetes Engine
- Auf einem Linux- oder MacOS-Computer oder in der Cloud eines anderen Anbieters.
Sie können den ESPv2 Beta-Container auf den folgenden Plattformen ausführen:
- Cloud Run
- Knative Serving
- GKE
- Compute Engine
- Kubernetes
Weitere Informationen finden Sie unter Über Cloud Endpoints.
Informationen zum Bereitstellen Ihrer API und Ihres Extensible Service Proxy auf Google Cloud-Computing-Plattformen finden Sie unter API-Back-End bereitstellen.
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 Endpoints 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 Cloud Endpoints-Einstellungen.
Transcodierung
Endpoints bietet Protokollübersetzungen für Ihre gRPC-Dienste. Dadurch können Clients HTTP/JSON zur Kommunikation mit einem gRPC-Dienst über den ESP oder ESPv2 verwenden.
Der häufigste Anwendungsfall besteht darin, Browser-Clients die Kommunikation mit gRPC-Servern ohne spezielle Unterstützung von gRPC-Clientbibliotheken zu ermöglichen. Endpoints 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 Endpoints unterstützt.
- Nutzlastkomprimierung
- Andere IDLs als Protokollpuffer
Darüber hinaus unterstützt Endpoints nur gRPC-Dienste für GKE, Compute Engine und Cloud Run (Beta). Endpoints unterstützt keine gRPC-Dienste für App Engine-Umgebungen.
Nächste Schritte
- Befolgen Sie unsere Anleitungen, um einen einfachen gRPC-Dienst mit Cloud Endpoints in der Umgebung Ihrer Wahl zu erstellen und zu starten.
- Informationen zur Konfiguration eines gRPC-Dienstes für Cloud Endpoints
- Sehen Sie sich die Beispiele an. Das getting-started-grpc-Beispiel ist auf GitHub in den folgenden Sprachen verfügbar:
- Das Bookstore-Beispiel ist in den folgenden Sprachen verfügbar: