Información general sobre gRPC

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

Una de las principales ventajas de usar gRPC es la documentación. Puedes usar los archivos de configuración de tu servicio y de definición de interfaz de API para generar documentación de referencia de tu API.

Gestión de APIs

Con API Gateway para gRPC, puedes usar las funciones de gestión de APIs de API Gateway para añadir monitorización, alojamiento, seguimiento, autenticación y más a tus servicios gRPC en Cloud Run. Además, una vez que especifiques reglas de asignación especiales, API Gateway traducirá JSON RESTful a través de HTTP en solicitudes gRPC. Esto significa que puedes implementar un servidor gRPC gestionado por API Gateway y llamar a su API mediante un cliente gRPC o JSON/HTTP, lo que te ofrece mucha más flexibilidad y facilidad de integración con otros sistemas.

Puedes crear servicios gRPC para API Gateway en cualquier idioma compatible con gRPC. Puedes consultar mucha más información sobre gRPC, incluidas guías de inicio rápido y tutoriales para crear servidores y clientes, en el sitio de gRPC.

Definición y configuración del servicio

gRPC se basa en la idea de definir un servicio, especificando los métodos a los que se puede llamar de forma remota con sus parámetros y tipos de retorno. De forma predeterminada, gRPC usa buffers de protocolo como lenguaje de definición de interfaz (IDL) para describir tanto la interfaz de servicio como 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 de servicio junto con la definición del servicio. De esta forma, se configura el comportamiento en tiempo de ejecución de tu servicio, incluida la autenticación, las APIs incluidas en el servicio, las asignaciones de solicitudes HTTP a métodos gRPC y los ajustes especiales de API Gateway.

Transcodificación

API Gateway ofrece traducción de protocolos para tus servicios gRPC en Cloud Run, lo que permite a los clientes usar HTTP/JSON para comunicarse con un servicio gRPC a través de API Gateway.

El caso práctico más habitual es permitir que los clientes del navegador se comuniquen con servidores gRPC sin que las bibliotecas de cliente de gRPC tengan que ofrecer asistencia especial. API Gateway proporciona un mecanismo para asignar solicitudes HTTP a métodos gRPC como parte de la configuración del servicio.

Puedes consultar más información sobre este tema en el artículo Transcodificar HTTP/JSON a gRPC.

Limitaciones

Las siguientes funciones de gRPC aún no se admiten en API Gateway:

  • Compresión de la carga útil
  • Cualquier IDL que no sea un búfer de protocolo

Por el momento, API Gateway solo admite servicios gRPC de Cloud Run.

Siguientes pasos

  • Explora las muestras. El ejemplo getting-started-grpc está disponible en GitHub en los siguientes idiomas:
  • El ejemplo de librería está disponible en los siguientes idiomas: