Configurar Cloud Endpoints

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:

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 dominio cloud.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

  1. Crea un archivo .proto para tu servicio. Consulta la guía para desarrolladores
    para obtener más información.

  2. 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.

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.

  1. Guardar una copia de api_config.yaml.

  2. Escribe el nombre de tu servicio en el campo name. Por ejemplo:

    name: bookstore.endpoints.example-project-12345.cloud.goog
    
  3. 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
    
  4. 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
    
  5. 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