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:
Haber creado un Google Cloud proyecto en el que tengas el rol Editor o Propietario. Después de la implementación inicial, puedes conceder el rol Editor de configuración de servicio, que es más restrictivo. Consulta más información sobre cómo conceder y revocar acceso a la API.
Endpoints configurados, que incluye lo siguiente:
Si usas un nombre de dominio personalizado (por ejemplo,
example.com
), debes verificar el nombre de dominio antes de poder implementar los archivos de configuración de gRPC.
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:
- Instala e inicializa gcloud CLI.
- Actualiza gcloud CLI:
gcloud components update
- 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.
- Define el proyecto predeterminado. Sustituye
[YOUR-PROJECT-ID]
por el ID de tu proyecto de GCP.gcloud config set project [YOUR-PROJECT-ID]
- 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
. Se abre una nueva pestaña del navegador y se te pide que elijas una cuenta.gcloud auth application-default login
Desplegar los archivos de configuración
- Asegúrate de que te encuentras en el directorio en el que están los archivos
api_descriptor.pb
yapi_config.yaml
. - 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
- 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 ybookstore.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
- Desplegar el backend de la API
- Ejecutar el ESP localmente o en otra plataforma
- Obtener el nombre del servicio y el ID de configuración