En esta página se describen los archivos de configuración necesarios para crear un servicio gRPC gestionado por Endpoints.
Requisitos previos
Para empezar, en esta página se presupone que tienes lo siguiente:
- Un Google Cloud proyecto.
- Conocimientos básicos sobre cómo configurar un servicio de API gRPC.
- gRPC y las herramientas de gRPC instalados. Consulta los detalles en el artículo Empezar a usar gRPC.
Elegir el nombre del servicio
Cloud Endpoints usa el nombre que configures en el archivo YAML de configuración de la API gRPC como nombre de tu servicio.El nombre de tu servicio de API debe ser único en Google Cloud. Como Endpoints usa nombres compatibles con DNS para identificar servicios, te recomendamos que uses el nombre de dominio o el nombre de subdominio de tu API como nombre de servicio. Con este método, el nombre del servicio que aparece en la página Servicios de puntos finales coincide con el nombre usado en las solicitudes a tu API. Endpoints tiene los siguientes requisitos para el nombre del servicio:
- La longitud máxima del nombre de dominio es de 253 caracteres.
- El nombre de dominio debe empezar por una letra minúscula.
-
Cada sección del nombre de dominio, delimitada por puntos, debe cumplir los siguientes requisitos:
- Debe empezar por una letra minúscula.
- No puede terminar en un guion.
- El resto de los caracteres pueden ser letras minúsculas, números o guiones.
- La longitud máxima es de 63 caracteres.
Puedes registrar tu propio dominio personalizado (como example.com
) o usar un dominio gestionado por Google.
Usar un dominio gestionado por Google
Google es el propietario y el administrador del dominiocloud.goog
. Si quieres usar un dominio gestionado por Google, debes usar tu ID de proyecto como parte del nombre del servicio. Google Cloud Como los Google Cloud proyectos tienen un ID de proyecto único a nivel global, este requisito asegura que tengas un nombre de servicio único.
Si quieres usar el dominio cloud.goog
, el nombre del servicio debe tener el siguiente formato, donde YOUR_API_NAME
es el nombre de tu API y YOUR_PROJECT_ID
es tu ID de proyecto deGoogle Cloud :
YOUR_API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog`
Para usar este dominio como nombre de dominio de la API, consulta el artículo Configurar el DNS en el dominio cloud.goog
.
Usar un dominio personalizado
Si no quieres usar un dominio gestionado por Google, puedes usar un dominio personalizado (por ejemplo, myapi.mycompany.com
) para el que tengas autorización.
Antes de implementar la configuración de la API, sigue los pasos que se indican en Verificar la propiedad del dominio.
Configurar el búfer de protocolo
Crea un archivo
.proto
para tu servicio. Consulta la guía para desarrolladores
para obtener más información.Compila tus búferes de protocolo con el compilador
protoc
de tu idioma. Por ejemplo:protoc --proto_path=. \ --include_imports \ --include_source_info \ --descriptor_set_out=api_descriptor.pb \ bookstore.proto
En el comando anterior,
--proto_path
se ha definido como el directorio de trabajo actual. En tu entorno de compilación de gRPC, si usas un directorio diferente para los archivos de entrada.proto
, cambia--proto_path
para que el compilador busque en el directorio donde hayas guardado el archivo.proto
.Si el comando
protoc
para generar el archivo de descriptor falla, comprueba lo siguiente:- Tu versión de
protoc
está actualizada. - Has especificado
--proto_path
o su forma abreviada-I
para los directorios raíz de los archivos.proto
importados. Puede consultar más información en la documentación de los búferes de protocolo. - Has especificado
--include_imports
.
Si quieres que tus clientes accedan a tu servicio gRPC mediante HTTP con JSON, debes especificar cómo se traducen los datos de HTTP con JSON a gRPC. Te recomendamos que anotes las APIs definidas en tu archivo
.proto
. Consulta más información en el artículo Transcodificar HTTP/JSON a gRPC.- Tu versión de
Configurar el archivo de configuración del servicio gRPC
Debes crear un archivo YAML de configuración de servicio gRPC. En este archivo, se especifica el nombre del servicio y las restricciones de uso, como la necesidad de una clave de API.
Puedes usar el archivo api_config.yaml
del ejemplo de librería como modelo.
Guardar una copia de
api_config.yaml
.Escribe el nombre de tu servicio en el campo
name
. Por ejemplo:name: bookstore.endpoints.example-project-12345.cloud.goog
Introduce el título que se muestra en la página Endpoints > Services (Puntos de conexión > Servicios) de la consola Google Cloud . Por ejemplo:
title: Bookstore gRPC API
Escribe el nombre de la API en el campo
apis:name
. El texto que introduzcas debe coincidir exactamente con el nombre de la API completo del archivo.proto
. Por ejemplo:apis: - name: endpoints.examples.bookstore.Bookstore
Configura el resto del archivo. Por ejemplo:
# # API usage restrictions. # usage: rules: # ListShelves methods can be called without an API Key. - selector: endpoints.examples.bookstore.Bookstore.ListShelves allow_unregistered_calls: true
Consulte más información en Reglas y selectores.
Siguientes pasos
Ejemplos adicionales de gRPC
- Versión Java del ejemplo Bookstore.
El ejemplo de
getting-started-grpc
está disponible en GitHub en los siguientes idiomas: