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:
Ten preparado el código fuente de la aplicación. Tu código fuente debe almacenarse en un repositorio, como GitHub o Bitbucket.
Para ejecutar los comandos de
gcloudde esta página, instala Google Cloud CLI.
Permisos necesarios de Identity and Access Management
-
En la consola Google Cloud , ve a la página settings Cloud Build Permisos:
Para la cuenta de servicio de Cloud Build especificada o la cuenta de servicio de Cloud Build predeterminada, establece el estado de los siguientes roles como Habilitado:
- Administrador de App Engine (
roles/appengine.appAdmin): Permite que Cloud Build implemente versiones nuevas en App Engine.- En el panel Assign Service Account User Role, elige una cuenta de servicio para suplantar su identidad y, luego, haz clic en Grant Permission.
- Administrador de almacenamiento (
roles/storage.admin) | Permite leer y escribir desde Cloud Storage. - Escritor de Artifact Registry (
roles/artifactregistry.writer): Permite extraer imágenes de Artifact Registry y escribir en él. - Escritor de registros (
roles/logging.logWriter): Permite escribir entradas de registro en Cloud Logging. - Editor de Cloud Build (
roles/cloudbuild.builds.editor): Permite que tu cuenta de servicio ejecute compilaciones.
- Administrador de App Engine (
Configura la implementación
Cloud Build te permite usar cualquier imagen de contenedor disponible a nivel público para ejecutar tus 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 imagen de cloud-sdk como un paso de compilación en tu archivo de configuración para invocar los comandos de gcloud dentro de la imagen.
Los argumentos que se pasan a este paso de compilación se pasan directamente a gcloud CLI, 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.yamlocloudbuild.json.En el archivo de configuración, haz lo siguiente:
- Agrega un campo
namepara especificar el paso de compilación decloud-sdk. - Agrega un campo
entrypointpara usar la herramienta debashcuando se invoca acloud-sdk. En el campo
args, invoca el comandogcloud app deployy configuratimeoutpara 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 deploytarda más de 10 minutos en completarse.Errores de tiempo de espera cuando se usa el entorno estándar de App Engine: Solo puedes configurar los tiempos de espera como se describe aquí 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 el entorno flexible de App Engine o Cloud Run en lugar del entorno estándar de App Engine.
Agrega un valor de compilación de
timeoutde 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_DIRECTORYes la ruta de acceso o la URL del código fuente yREGIONes una de las regiones de compilación admitidas para iniciar 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 expresión regular para el nombre de la rama o 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 Cloud Run Functions
- Consulta Implementa en Firebase
- Obtén más información para solucionar errores de compilación.