En esta página se explica cómo desplegar aplicaciones en App Engine mediante Cloud Build. Si es la primera vez que usas Cloud Build, consulta primero las guías de inicio rápido y el resumen de la configuración de compilación.
App Engine es una plataforma sin servidor totalmente gestionada para desarrollar y alojar aplicaciones web a gran escala. Para obtener más información sobre App Engine, consulta la documentación de App Engine.
Antes de empezar
Habilita la API App Engine:
Para ejecutar los comandos
gcloud
de esta página, instala la CLI de Google Cloud.Ten a mano el código fuente de la aplicación que quieras compilar y desplegar en App Engine. El código fuente debe almacenarse en un repositorio, como Cloud Source Repositories, GitHub o Bitbucket.
Permisos de gestión de identidades y accesos necesarios
En la Google Cloud consola, selecciona tu proyecto.
Concede el rol 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, localízala en la página Cuentas de servicio.
Asigna los roles Administrador de App Engine y Usuario de cuenta de servicio a la cuenta de servicio de compilación:
-
En la Google Cloud consola, ve a la página Permisos de settings Cloud Build:
Asigna el estado Habilitado a los roles Administrador de App Engine y Usuario de cuenta de servicio.
-
Configuración del despliegue
Cloud Build te permite usar cualquier imagen de contenedor disponible públicamente para ejecutar tus tareas. Para ello, especifica la imagen en un step
de compilación
en el archivo de configuración de Cloud Build.
App Engine proporciona el comando gcloud app deploy
, que crea una imagen con tu código fuente y la despliega en App Engine. Puedes usar la cloud-sdk
imagen
como paso de compilación en tu archivo de configuración para invocar comandos de gcloud
en la imagen.
Los argumentos que se transfieren a este paso de compilación se transfieren directamente a la CLI de gcloud, lo que te permite ejecutar cualquier comando gcloud
en esta imagen.
Para desplegar una aplicación en App Engine, sigue estos pasos:
Crea un archivo de configuración de Cloud Build llamado
cloudbuild.yaml
ocloudbuild.json
.En el archivo de configuración:
- Añade un campo
name
para especificar el paso de compilacióncloud-sdk
. - Añade un campo
entrypoint
para usar la herramientabash
cuando se invoquecloud-sdk
. En el campo
args
, invoca el comandogcloud app deploy
y define untimeout
para que App Engine lo use cuando invoque Cloud Build. Esto es necesario porque los pasos y las compilaciones 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 más largo, te asegurarás de que la compilación no se agote sigcloud app deploy
tarda más de 10 minutos en completarse.Errores de tiempo de espera al usar el entorno estándar de App Engine: solo puedes configurar los tiempos de espera como se describe en este artículo 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 desplegar en el entorno estándar de App Engine y tu compilación falla con un error de tiempo de espera agotado, te recomendamos que uses el entorno flexible de App Engine o Cloud Run en lugar del entorno estándar de App Engine.
Añade un valor de compilación
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" }
- Añade un campo
Inicia la compilación, donde
SOURCE_DIRECTORY
es la ruta o la URL del código fuente yREGION
es una de las regiones de compilación admitidas para iniciar la compilación:gcloud builds submit --region=REGION SOURCE_DIRECTORY
Despliegue continuo
Puedes automatizar el despliegue de tu software en App Engine creando activadores de Cloud Build. Puedes configurar tus activadores para que compilen e implementen imágenes cada vez que actualices el código fuente.
Para automatizar el despliegue en App Engine, sigue estos pasos:
En tu repositorio, añade un archivo de configuración con los 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 que has creado en el paso anterior:
Abre la página Triggers (Activadores) en la Google Cloud consola:
Selecciona tu proyecto en el menú desplegable del selector de proyectos situado en la parte superior de la página.
Haz clic en Abrir.
Haz clic en Crear activador.
En la página Crear activador, introduzca los siguientes ajustes:
Escribe un nombre para el activador.
Selecciona el evento del repositorio para iniciar el activador.
Selecciona el repositorio que contiene el código fuente y el archivo de configuración de compilación.
Especifica la expresión regular del nombre de la rama o etiqueta que iniciará el activador.
Configuración: elige el archivo de configuración de compilación que creaste anteriormente.
Haz clic en Crear para guardar el activador de compilación.
Cada vez que envíes código nuevo a tu repositorio, se iniciará automáticamente una compilación y un despliegue en App Engine.
Para obtener más información sobre cómo crear activadores de Cloud Build, consulta el artículo Crear y gestionar activadores de compilación.
Siguientes pasos
- Consulta cómo desplegar en Cloud Run.
- Consulta cómo realizar implementaciones azul/verde en Compute Engine.
- Consulta cómo desplegar en GKE.
- Consulta cómo desplegar en Cloud Run Functions.
- Consulta cómo implementar en Firebase.
- Consulta cómo solucionar errores de compilación.