En esta página, se explica cómo implementar aplicaciones en App Engine con Cloud Build. Si estás dando los primeros pasos en Cloud Build, lee primero las guías de inicio rápido y la descripción general de la configuración de compilación.
App Engine es una plataforma sin servidores completamente administrada para desarrollar y alojar aplicaciones web a gran escala. Para obtener más información sobre App Engine, lee la Documentación de App Engine.
Antes de comenzar
Habilita la API de App Engine:
Para ejecutar los comandos de
gcloud
en esta página, instala el Google Cloud CLI.Tienes el código fuente de la aplicación que deseas compilar e implementar en App Engine. El código fuente debe almacenarse en un repositorio, como Cloud Source Repositories, GitHub o Bitbucket.
Permisos de IAM obligatorios
En la consola de Google Cloud, selecciona tu proyecto.
Otorga el rol de cuenta de servicio de Cloud Build a la cuenta de servicio predeterminada de App Engine. Si la cuenta de servicio no aparece en la lista, búscala en la página Cuentas de servicio.
Otorga el rol Administrador de App Engine y Usuario de cuenta de servicio a la compilación cuenta de servicio:
Abre la página Configuración de Cloud Build:
Configura el estado de la función Administrador de App Engine y el Usuario de cuenta de servicio en Habilitado.
Configura la implementación
Cloud Build permite usar cualquier imagen de contenedor disponible a nivel público para ejecutar tareas. Para ello, especifica la imagen en una compilación step
en el archivo de configuración de Cloud Build.
App Engine proporciona el comando gcloud app deploy
, que compila una imagen con el código fuente y la implementa en App Engine. Puedes usar la cloud-sdk
imagen
como un paso de compilación en tu archivo de configuración para invocar comandos gcloud
dentro de la imagen.
Los argumentos que se pasan a este paso de compilación se pasan directamente a la CLI de gcloud, lo que te permite ejecutar cualquier comando de gcloud
en esta imagen.
Para implementar una aplicación en App Engine, sigue estos pasos:
Crea un archivo de configuración de Cloud Build con el nombre
cloudbuild.yaml
ocloudbuild.json
.En el archivo de configuración, haz lo siguiente:
- Agrega un campo
name
para especificar el paso de compilación decloud-sdk
. - Agrega un campo
entrypoint
para usar la herramienta debash
cuando se invoca acloud-sdk
. En el campo
args
, invoca el comandogcloud app deploy
y configuratimeout
para que App Engine la use cuando invoque a Cloud Build. Esto es necesario porque las compilaciones y los pasos de compilación de Cloud Build tienen un tiempo de espera predeterminado de 10 minutos y las implementaciones de App Engine pueden tardar más en completarse. Si especificas un tiempo de espera mayor, te aseguras de que la compilación no agote el tiempo de espera sigcloud app deploy
tarda más de 10 minutos en completarse.Errores de tiempo de espera cuando se usa el entorno estándar de App Engine: Puedes configurar los tiempos de espera como se describe aquí solo cuando usas el entorno flexible de App Engine. El entorno estándar de App Engine no permite configurar el tiempo de espera de compilación. Si usas Cloud Build para implementar en el entorno estándar de App Engine y tu compilación falla con un error de tiempo de espera, considera usar App Engine flexible o Cloud Run en lugar del entorno estándar de App Engine.
Agrega un valor de compilación de
timeout
de más de 10 minutos.
YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }
- Agrega un campo
Inicia la compilación, en la que
SOURCE_DIRECTORY
es la ruta de acceso o la URL a la fuente. código yREGION
es una de las regiones de compilación compatibles para comenzar la compilación:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Implementación continua
Puedes automatizar la implementación de tu software en App Engine mediante la creación de activadores de Cloud Build. Puedes configurar tus activadores para compilar y, luego, implementar imágenes cada vez que actualices tu código fuente.
Para automatizar tu implementación en App Engine, haz lo siguiente:
En tu repositorio, agrega un archivo de configuración con pasos para invocar el comando
gcloud app deploy
:YAML
steps: - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk' entrypoint: 'bash' args: ['-c', 'gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy'] timeout: '1600s'
JSON
{ "steps": [ { "name": "gcr.io/google.com/cloudsdktool/cloud-sdk", "entrypoint": "bash", "args": [ "-c", "gcloud config set app/cloud_build_timeout 1600 && gcloud app deploy" ] } ], "timeout": "1600s" }
Crea un activador de compilación con el archivo de configuración generado en el paso anterior:
Abre la página Activadores en la consola de Google Cloud:
Selecciona el proyecto en el menú desplegable del selector de proyectos, que se ubica en la parte superior de la página.
Haz clic en Abrir.
Haz clic en Crear activador.
En la página Crear activador, ingresa la siguiente configuración:
Ingresa un nombre para el activador.
Selecciona el evento del repositorio para iniciar el activador.
Selecciona el repositorio que contenga el código fuente y el archivo de configuración de compilación.
Especifica la regex de la rama o el nombre de la etiqueta que iniciará el activador.
Configuración: Elige el archivo de configuración de compilación que creaste con anterioridad.
Haz clic en Crear para guardar el activador de compilación.
Cada vez que envíes código nuevo a tu repositorio, comenzarás a compilar y, luego, implementar en App Engine de forma automática.
Para obtener más información sobre cómo crear activadores de Cloud Build, consulta Crea y administra activadores de compilación.
¿Qué sigue?
- Consulta Implementa en Cloud Run.
- Obtén información para realizar implementaciones azul-verde en Compute Engine
- Consulta Implementa en GKE.
- Consulta Implementa en funciones de Cloud Run.
- Consulta Implementa en Firebase
- Obtén más información para solucionar errores de compilación.