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 usan Endpoints y otros servicios para crear y gestionar APIs y servicios. En esta página se describe cómo implementar 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 tenga 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 el 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 la implementación
Para implementar la configuración, utiliza 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
- Make sure you are in the directory where the
api_descriptor.pbandapi_config.yamlfiles are located. - Confirm that the default project that the
gcloudcommand-line tool is currently using is the Google Cloud project that you want to deploy the Endpoints configuration to. Validate the project ID returned from the following command to make sure that the service doesn't get created in the wrong project.gcloud config list project
If you need to change the default project, run the following command:
gcloud config set project YOUR_PROJECT_ID
- Deploy the
proto descriptorfile and the configuration file by using the Google Cloud CLI:gcloud endpoints services deploy api_descriptor.pb api_config.yaml
As it is creating and configuring the service, Service Management outputs information to the terminal. When the deployment completes, a message similar to the following is displayed:
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID is the unique Endpoints service configuration ID created by the deployment. For example:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
In the previous example,
2017-02-13r0is the service configuration ID andbookstore.endpoints.example-project.cloud.googis the service name. The service configuration ID consists of a date stamp followed by a revision number. If you deploy the Endpoints configuration again on the same day, the revision number is incremented in the service configuration ID.
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, hasta 5 minutos después de desplegar una nueva configuración de servicio, ESP detectará el cambio y empezará a usarlo automáticamente. Te recomendamos que especifiques esta opción en lugar de un ID de configuración específico para que la use el ESP.
Después de la implementación de la configuración inicial de Endpoints, puedes asignar 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