Descripción general de gRPC

gRPC es un marco de trabajo de RPC universal de código abierto y alto rendimiento desarrollado por Google. En gRPC, una aplicación cliente puede llamar de forma directa a métodos en una aplicación de servidor en otra máquina como si fuera un objeto local, lo cual facilita la creación de aplicaciones y servicios distribuidos.

Uno de los beneficios principales de usar gRPC es la documentación; puedes usar tu configuración de servicio y los archivos de definición de la interfaz de API a fin de generar documentación de referencia para tu API.

Administración de API

Con API Gateway para gRPC, puedes usar las capacidades de administración de API de API Gateway a fin de agregar supervisión, hosting, seguimiento, autenticación y más a tus servicios de gRPC en Cloud Run. Además, una vez que especificas reglas de asignación especiales, API Gateway traduce JSON RESTful en HTTP a solicitudes de gRPC. Esto significa que puedes implementar un servidor de gRPC administrado por API Gateway y llamar a su API con un cliente gRPC o JSON/HTTP, lo que te da mucha más flexibilidad y facilidad para la integración con otros sistemas.

Puedes crear servicios de gRPC para API Gateway en cualquier lenguaje compatible con gRPC. Puedes obtener más información acerca de gRPC, como guías de inicio rápido y también instructivos para crear servidores y clientes, en el sitio de gRPC.

Definición y configuración de servicios

gRPC está basado en la idea de definir un servicio para el que se especifican los métodos que pueden llamarse de forma remota con sus parámetros y tipos de resultados. De forma predeterminada, gRPC usa búferes de protocolo, como el Lenguaje de Definición de Interfaz (IDL), para describir la interfaz del servicio y la estructura de los mensajes de carga útil.

// 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;
}

Para usar gRPC con API Gateway, debes proporcionar una configuración del servicio junto con la definición del servicio. Esto configura el comportamiento del entorno de ejecución de tu servicio, incluso la autenticación, las API incluidas en el servicio, las asignaciones de solicitudes HTTP a métodos gRPC y configuraciones especiales de API Gateway.

Transcodificación

API Gateway ofrece una traducción de protocolo a tus servicios de gRPC en Cloud Run, lo que permite a los clientes usar HTTP/JSON para comunicarse con un servicio de gRPC mediante la puerta de enlace de API.

El caso de uso más común es permitir a los clientes de navegador hablar con los servidores de gRPC sin asistencia especial de las bibliotecas cliente de gRPC. API Gateway proporciona un mecanismo para asignar solicitudes de HTTP a métodos de gRPC como parte de la configuración del servicio.

Puedes obtener más información sobre este tema en Transcodificación de HTTP/JSON a gRPC.

Limitaciones

Las siguientes características de gRPC aún no son compatibles con API Gateway:

  • Compresión de carga útil
  • Todos los IDL aparte de los búferes de protocolo

API Gateway solo admite servicios de gRPC de Cloud Run en este momento.

¿Qué sigue?

  • Explora las muestras. La muestra getting-started-grpc está disponible en GitHub en los lenguajes siguientes:
  • La muestra de Bookstore está disponible en estos lenguajes: