Desplegar la configuración de Endpoints

Después de configurar el archivo .proto y el archivo de configuración de la API gRPC, debes desplegarlos para que Cloud Endpoints tenga la información que necesita para gestionar tu API. Para desplegar la configuración de Endpoints, usa el comando gcloud endpoints services deploy. Este comando usa Service Infrastructure, la plataforma de servicios básica de Google que utilizan Endpoints y otros servicios para crear y gestionar APIs y servicios. En esta página se describe cómo desplegar los archivos de configuración en Endpoints.

Requisitos previos

Para empezar, en esta página se presupone que tienes lo siguiente:

Preparar Google Cloud CLI para el despliegue

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

Para preparar la implementación, haz lo siguiente:

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

    Se abre una nueva pestaña del navegador y se te pide que elijas una cuenta.

  4. Define el proyecto predeterminado. Sustituye [YOUR-PROJECT-ID] por el ID de tu proyecto de GCP.
    gcloud config set project [YOUR-PROJECT-ID]
  5. Si vas a implementar tu backend de API en Kubernetes o Kubernetes Engine, ejecuta el siguiente comando para obtener nuevas credenciales de usuario que puedas usar con las credenciales predeterminadas de la aplicación. Se necesitan las credenciales del usuario para autorizar kubectl.
    gcloud auth application-default login
    Se abre una nueva pestaña del navegador y se te pide que elijas una cuenta.

Desplegar los archivos de configuración

  1. Asegúrate de que te encuentras en el directorio en el que están los archivos api_descriptor.pb y api_config.yaml.
  2. Confirma que el proyecto predeterminado que está usando la herramienta de línea de comandos gcloud es el proyecto Google Cloud en el que quieres desplegar la configuración de Endpoints. Valida el ID del proyecto devuelto por el siguiente comando para asegurarte de que el servicio no se crea en el proyecto incorrecto.
    gcloud config list project
    

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

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

    Mientras crea y configura el servicio, Gestión de servicios muestra información en la terminal. Cuando se complete la implementación, se mostrará un mensaje similar al siguiente:

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

    CONFIG_ID es el ID único de configuración del servicio Endpoints que se crea durante 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 consta de una marca de fecha seguida de un número de revisión. Si vuelves a desplegar la configuración de Endpoints el mismo día, el número de revisión se incrementará en el ID de configuración del servicio.

Si la configuración de tu servicio está en varios archivos YAML, puedes pasarlos todos al comando deploy. Por ejemplo, la librería tiene su configuración básica en api_config.yaml, pero puedes habilitar la transcodificación HTTP para el servicio desplegando también 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 tus archivos YAML, los valores del último archivo especificado anularán los demás. Puedes obtener más información sobre cómo gestiona Endpoints la combinación de varios archivos YAML en Configurar un servicio gRPC.

Si aparece un mensaje de error, consulta la sección Solucionar problemas de despliegue de la configuración de Endpoints para obtener información sobre cómo solucionar el error.

Volviendo a desplegar

Cada vez que cambies algo en el archivo YAML de configuración de .proto o de servicio, vuelve a desplegar los archivos para que Extensible Service Proxy (ESP) tenga la versión más reciente de la configuración de servicio de tu API. Si ya has implementado ESP con la opción rollout definida como managed, no es necesario que reinicies ni vuelvas a implementar ESP. La opción rollout=managed configura ESP para que use la última configuración de servicio implementada. Si especifica esta opción, el ESP detectará el cambio y empezará a usarlo automáticamente en un plazo de 5 minutos después de que implemente una nueva configuración de servicio. Te recomendamos que especifiques esta opción en lugar de un ID de configuración específico para que lo use ESP.

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

Siguientes pasos