Implementa la configuración de Endpoints

Después de configurar tu archivo .proto y el archivo de configuración de API de gRPC, puedes implementarlos a fin de que Cloud Endpoints tenga la información necesaria para administrar tu API. Para implementar la configuración de Endpoints, usa el comando gcloud endpoints services deploy. Este comando usa Service Infrastructure, la plataforma básica de servicios de Google, que Endpoints y otros servicios usan a fin de crear y administrar las API y los servicios. En esta página, se describe cómo implementar los archivos de configuración de Endpoints.

Requisitos previos

Como punto de partida, en esta página se supone que ya:

Prepara Google Cloud CLI para la implementación

Usas la herramienta de línea de comandos de gcloud para implementar la configuración. Consulta la referencia de gcloud para obtener más información sobre los comandos.

Prepárate para la implementación de la siguiente manera:

  1. Instala e inicializa la gcloud CLI.
  2. Actualiza la gcloud CLI:
    gcloud components update
  3. Asegúrate de que la gcloud CLI esté autorizada para acceder a tus datos y servicios:
    gcloud auth login

    Se abrirá una pestaña nueva del navegador y se te solicitará que elijas una cuenta.

  4. Configura el proyecto predeterminado. Reemplaza [YOUR-PROJECT-ID] por el ID del proyecto de GCP.
    gcloud config set project [YOUR-PROJECT-ID]
  5. Si deseas implementar el backend de tu API en Kubernetes o Kubernetes Engine, ejecuta el comando siguiente para adquirir credenciales de usuario nuevas y usarlas como las credenciales predeterminadas de la aplicación. Para la autorización de kubectl, se necesitan las credenciales de usuario.
    gcloud auth application-default login
    Se abrirá una nueva pestaña del navegador y se te solicitará que elijas una cuenta.

Implementa los archivos de configuración

  1. Asegúrate de estar en el directorio en el que se encuentran los archivos api_descriptor.pb y api_config.yaml.
  2. Confirma que el proyecto predeterminado que se usa actualmente en la herramienta de línea de comandos de gcloud sea el proyecto de Google Cloud en el que deseas implementar la configuración de Endpoints. Valida el ID del proyecto que se muestra en el comando siguiente para asegurarte de que el servicio no se cree en el proyecto equivocado.
    gcloud config list project
    

    Si necesitas cambiar el proyecto predeterminado, ejecuta el siguiente comando:

    gcloud config set project YOUR_PROJECT_ID
    
  3. Implementa el archivo proto descriptor y el archivo de configuración con Google Cloud CLI:
    gcloud endpoints services deploy api_descriptor.pb api_config.yaml
    

    Mientras se crea y configura el servicio, Service Management exporta la información a la terminal. Cuando se completa la implementación, aparece un mensaje similar al siguiente:

    Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]

    CONFIG_ID es el ID de configuración único del servicio de Endpoints que creó la implementación. Por ejemplo:

    Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
    

    En el ejemplo anterior, 2017-02-13r0 es el ID de configuración del servicio y bookstore.endpoints.example-project.cloud.goog es el nombre del servicio. El ID de configuración del servicio consiste en una marca de fecha seguida de un número de revisión. Si implementas la configuración de Endpoints otra vez el mismo día, el número de revisión aumenta en el ID de configuración del servicio.

Si la configuración de tu servicio está en varios archivos YAML, puedes pasarlos al comando deploy. Por ejemplo, Bookstore tiene su configuración básica en api_config.yaml, pero puedes habilitar la transcodificación HTTP del servicio si también implementas api_config_http.yaml, que tiene una configuración adicional para esta función:

gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml

Ten en cuenta que si hay valores en conflicto en los archivos YAML, los valores del último archivo especificado anulan los demás. Puedes obtener más información sobre cómo Endpoints maneja la fusión de varios archivos YAML en Configurar un servicio gRPC.

Si recibes un mensaje de error, consulta Solucionar problemas en la implementación de la configuración de Endpoints para obtener información sobre la solución de problemas asociados con el error.

Vuelve a implementar

Cuando quieras cambiar algo en tu .proto o en el archivo YAML de configuración de servicio, vuelve a implementar los archivos para que el proxy de servicio extensible (ESP) obtenga la versión más reciente de la configuración de servicio de tu API. Si ya implementaste el ESP con la opción rollout configurada en managed, no tienes que reiniciar o volver a implementar el ESP. La opción rollout=managed configura el ESP para que use la configuración del servicio implementado más reciente. Cuando especificas esta opción, el ESP detecta el cambio y comienza a usarlo automáticamente hasta 5 minutos después de implementar una nueva configuración de servicio. Te recomendamos que especifiques esta opción en lugar de un ID de configuración determinado para que lo utilice el ESP.

Después de la implementación inicial de la configuración de Endpoints, puedes otorgar a un usuario, una cuenta de servicio o un grupo una función que les permita volver a implementar la configuración de Endpoints. Consulta Cómo otorgar y revocar el acceso a la API para obtener más información.

¿Qué sigue?