Desplegar en App Engine

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:

    Habilitar la API de 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

  1. En la Google Cloud consola, selecciona tu proyecto.

  2. 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.

    Ir a Cuentas de servicio

  3. Asigna los roles Administrador de App Engine y Usuario de cuenta de servicio a la cuenta de servicio de compilación:

    1. En la Google Cloud consola, ve a la página Permisos de Cloud Build:

      Ve a Permisos.

    2. 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:

  1. Crea un archivo de configuración de Cloud Build llamado cloudbuild.yaml o cloudbuild.json.

  2. En el archivo de configuración:

    • Añade un campo name para especificar el paso de compilación cloud-sdk.
    • Añade un campo entrypoint para usar la herramienta bash cuando se invoque cloud-sdk.
    • En el campo args, invoca el comando gcloud app deploy y define un timeout 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 si gcloud 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"
    }
    
  3. Inicia la compilación, donde SOURCE_DIRECTORY es la ruta o la URL del código fuente y REGION 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:

  1. 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"
    }
    
  2. Crea un activador de compilación con el archivo de configuración que has creado en el paso anterior:

    1. Abre la página Triggers (Activadores) en la Google Cloud consola:

      Abrir la página Activadores

    2. Selecciona tu proyecto en el menú desplegable del selector de proyectos situado en la parte superior de la página.

    3. Haz clic en Abrir.

    4. Haz clic en Crear activador.

      En la página Crear activador, introduzca los siguientes ajustes:

      1. Escribe un nombre para el activador.

      2. Selecciona el evento del repositorio para iniciar el activador.

      3. Selecciona el repositorio que contiene el código fuente y el archivo de configuración de compilación.

      4. Especifica la expresión regular del nombre de la rama o etiqueta que iniciará el activador.

      5. Configuración: elige el archivo de configuración de compilación que creaste anteriormente.

    5. 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