Cloud Endpoints für gRPC

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.

gRPC Endpoints Service

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:

Sie können den ESP-Container auf den folgenden Plattformen ausführen:

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.

Siehe API-Back-End bereitstellen für Informationen zum Bereitstellen der API und des Extensible Service Proxy auf Google Cloud-Computing-Plattformen

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