Cloud Endpoints para 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 API a fin de generar documentación de referencia para tu API. Consulta Descripción general del portal para desarrolladores si deseas obtener más información.

Administración de API

Endpoints trabaja con el proxy de servicio extensible (ESP) o el proxy de servicio extensible V2 (ESPv2) a fin de proporcionar administración de API.

Con Endpoints para gRPC, puedes usar las capacidades de administración de API de Endpoints con el fin de agregar una Consola de API, y características de supervisión, hosting, seguimiento, autenticación y más a tus servicios de gRPC. Además, una vez que especificas reglas de asignación especiales, ESP y ESPv2 traducen JSON RESTful en HTTP a solicitudes de gRPC. Esto significa que puedes implementar un servidor de gRPC administrado por Endpoints 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.

Servicio de Endpoints de gRPC

Puedes crear servicios de gRPC para Endpoints 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.

Plataformas de computación compatibles

El ESP y el ESPv2 son proyectos de código abierto al que puedes acceder de estas formas:

  • Un contenedor en Artifact Registry
  • Código fuente en GitHub.
    • Para obtener detalles sobre cómo compilar el ESP, consulta el archivo ESP README.
    • Para obtener detalles sobre cómo compilar ESPv2, consulta el archivo ESPv2 README.

Puedes ejecutar el contenedor de ESP en cualquiera de estas opciones:

Puedes ejecutar el contenedor de ESP en cualquiera de estas opciones:

  • Cloud Run
  • Knative serving
  • GKE
  • Compute Engine
  • Kubernetes

Consulta Acerca de Cloud Endpoints para obtener más información.

Consulta Cómo implementar el backend de la API para obtener más información sobre cómo implementar la API y el Proxy de servicio extensible en las plataformas de procesamiento de Google Cloud.

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 Endpoints, 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 Cloud Endpoints.

Transcodificación

Endpoints proporciona una traducción de protocolo a tus servicios de gRPC, lo que permite a los clientes usar HTTP/JSON para comunicarse con un servicio de gRPC mediante el ESP o ESPv2.

El caso práctico 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. Endpoints 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 Endpoints:

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

Además, los extremos solo son compatibles con los servicios de gRPC para GKE, Compute Engine y Cloud  Run (Beta). Los extremos no son compatibles con los servicios de gRPC para entornos de App Engine.

Próximos pasos

  • Completa uno de nuestros instructivos para poner en marcha un servicio de gRPC simple con Cloud Endpoints en el entorno que elijas.
  • Obtén información acerca de cómo configurar un servicio de gRPC para Cloud Endpoints.
  • Explora las muestras. La muestra de getting-started-grpc está disponible en GitHub en estos lenguajes:
  • La muestra de Bookstore está disponible en estos lenguajes: