Implementar y probar tu aplicación

ID de región

REGION_ID es un código abreviado que Google asigna en función de la región que eliges cuando creas la app. El código no corresponde a un país ni a una provincia, aunque algunos ID de región puedan parecer similares a los códigos de país y provincia que se suelen usar. En el caso de las apps creadas después de febrero de 2020, REGION_ID.r se incluye en las URL de App Engine. En el caso de las apps existentes creadas antes de esta fecha, el ID de región es opcional en la URL.

Obtén más información acerca de los ID de región.

Aprende cómo ejecutar tu aplicación de forma local, implementarla y probarla en App Engine.

Ejecuta de forma local

Para probar tu aplicación antes de la implementación, ejecútala en un entorno local con las herramientas de desarrollo que sueles usar.

Implementa tu aplicación

Implementa la aplicación en App Engine mediante el comando gcloud app deploy.

El servicio Cloud Build compila automáticamente tu implementación en una imagen de contenedor y la implementa en el entorno flexible de App Engine. El contenedor incluye las modificaciones locales que realizaste en la imagen del entorno de ejecución.

Para implementar tus aplicaciones de manera programática, usa la API de Admin.

Antes de comenzar

Antes de implementar tu aplicación:

Implementa un servicio

Para implementar tu aplicación en App Engine, debes implementar versiones de sus servicios y cada uno de sus archivos de configuración.

  • Puedes implementar los otros archivos de configuración de tu servicio si implementas y orientas cada archivo por separado, por ejemplo:

    gcloud app deploy cron.yaml
    gcloud app deploy dispatch.yaml
    gcloud app deploy index.yaml
    
  • Para especificar un ID de versión personalizado, usa la marca --version.

  • Para evitar que el tráfico se enrute de manera automática a la versión nueva, usa la marca --no-promote.

  • Para implementar en un proyecto de Google Cloud específico, usa la marca --project.

Por ejemplo, para implementar el servicio que define el archivo app.yaml en un proyecto específico de Google Cloud, asígnale un ID de versión personalizado y evita que el tráfico se enrute a la versión nueva:

gcloud app deploy --project PROJECT_ID --version VERSION_ID --no-promote

Para obtener más información, consulta la referencia gcloud app deploy.

Puedes establecer las propiedades de la gcloud CLI y crear y administrar la configuración del SDK para no tener que especificar las marcas, como --project, cada vez que realices una implementación.

Ignora los archivos

Puedes usar un archivo .gcloudignore para especificar los archivos y directorios que no se deben subir a Google Cloud cuando implementes los servicios. Esto es útil para ignorar artefactos de compilación y otros archivos que no necesitan subirse con la implementación.

Obtén más información sobre la sintaxis del archivo .gcloudignore en la referencia de gcloud.

Compila un contenedor para la implementación de forma manual

Para compilar las imágenes de contenedor fuera de Google Cloud, sigue estos pasos:

  1. Sube tus imágenes a un repositorio de Artifact Registry. Para obtener más información, consulta Envía y extrae imágenes.
  2. Realiza una implementación en App Engine con el comando gcloud app deploy.

Por ejemplo, si compilas las imágenes de contenedor de manera local con Docker, puedes enviarlas a Artifact Registry y, luego, especificar la URL de la imagen en la marca --image-url del comando:

gcloud app deploy --image-url LOCATION-docker.pkg.dev/PROJECT-ID/REPOSITORY/IMAGE

Reemplaza lo siguiente:

  • LOCATION por la ubicación del repositorio en el que se almacena la imagen.

  • PROJECT-ID por el ID del proyecto de Google Cloud.

  • REPOSITORY por el nombre del repositorio en el que se almacena la imagen.

  • IMAGE por el nombre de la imagen de contenedor

Usa las canalizaciones de implementación continua y automatizada

Puedes utilizar Cloud Build para automatizar las implementaciones en las canalizaciones continuas. Para obtener más información, consulta Implementa en App Engine y Crea y administra activadores de compilación en la documentación de Cloud Build.

Imágenes base de Docker

Si deseas compilar una aplicación personalizada del entorno de ejecución, consulta Crea un archivo Docker.

Visualiza la aplicación

Una vez que implementes la aplicación en App Engine, puedes ejecutar el siguiente comando para iniciar el navegador y visualizarla en https://PROJECT_ID.REGION_ID.r.appspot.com:

gcloud app browse

Prueba en App Engine

Antes de configurar una nueva versión para recibir tráfico, puedes probarla en App Engine. Por ejemplo, para probar una versión nueva del servicio default, sigue estos pasos:

  1. Implementa tu versión nuevae incluye la marca --no-promote:

    gcloud app deploy --no-promote

  2. Accede a la versión nueva desde la siguiente URL:

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

    Ahora puedes probar tu nueva versión en el entorno de ejecución de App Engine. Puedes depurar la aplicación si visualizas los registros en el Explorador de registros de la consola de Google Cloud. Para obtener más información, consulta Escribe registros de aplicaciones.

    Las solicitudes enviadas a https://PROJECT_ID.REGION_ID.r.appspot.com se enrutarán a la versión que se configuró antes para recibir tráfico.

  3. Cuando desees enviar tráfico a la nueva versión, usa la consola de Google Cloud para migrar el tráfico:

    Administra versiones

    Selecciona la versión que acabas de implementar y haz clic en Migrar tráfico.

Puedes usar el mismo proceso para probar las versiones nuevas de otros servicios si reemplazas default en la URL por el nombre del servicio:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Para obtener más información sobre cómo orientar versiones y servicios específicos, consulta la sección sobre cómo enrutar solicitudes.

Usa variables de entorno de compilación

También puedes configurar variables de entorno de compilación para entornos de ejecución que admitan paquetes de compilación.

Las variables de entorno de compilación son pares clave-valor que puedes especificar a fin de configurar el paquete de compilación que usas para implementar tu app. Por ejemplo, es posible que desees especificar opciones del compilador.

Antes de comenzar:

  • Las claves deben empezar con una letra ASCII en mayúscula y pueden incluir letras ASCII en mayúscula, dígitos y guiones bajos.
  • Debes evitar crear variables con un prefijo de clave GOOGLE_*.
  • Por el momento, las siguientes claves están reservadas para el uso de Google:
    • GOOGLE_RUNTIME
    • GOOGLE_RUNTIME_VERSION
    • GOOGLE_ENTRYPOINT
    • GOOGLE_DEVMODE
  • Puedes usar cualquier clave que se compatible con los paquetes de compilación.

Para usar variables de entorno con paquetes de compilación, especifica el campo build_env_variables en el archivo app.yaml.

Obtén más información sobre los paquetes de compilación.

Usa Cloud Trace

Cloud Trace es útil para comprender cómo se propagan las solicitudes a través de tus aplicaciones. Puedes inspeccionar información detallada sobre la latencia de una solicitud individual o ver la latencia global de toda la aplicación.

Puedes ver los detalles de seguimiento. En el Explorador de seguimiento, puedes filtrar por el servicio y la versión específicos de App Engine.

Solucionar problemas

Los siguientes son mensajes de error comunes que pueden surgir cuando implementas apps:

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
Si el proyecto de Google Cloud no incluye la aplicación de App Engine obligatoria, es posible que el comando gcloud app deploy falle cuando intente ejecutar el comando gcloud app create. Solo las cuentas con rol de propietario tienen los permisos necesarios para crear aplicaciones de App Engine.
502 Bad Gateway
Es posible que el proyecto de Google Cloud falle cuando se inicie si app.yaml está mal configurado. Para obtener información detallada sobre los mensajes de error, consulta Verifica los registros de la app.
[13] An internal error occurred while creating a Cloud Storage bucket.

App Engine crea un bucket multirregional de Cloud Storage predeterminado en tu nombre en la misma región en la que crea tu aplicación. Requiere que este bucket almacene el contenido de tu aplicación. Se muestra el error cuando no se puede crear este bucket, como en las siguientes situaciones:

Por ejemplo, si tu app de App Engine se crea en la región europe-west, aunque la región se asigna a las ubicaciones europe-west1, debes modificar la restricción a fin de permitir recursos en in:eu-locations, que incluye todas las regiones de la EU. Esto es necesario porque los buckets que creó App Engine son multirregionales. Si tu app de App Engine se crea en la región US, debes permitir in:us-locations y, si tu app se crea en las regiones ASIA, debes permitir in:asia-locations.

[13] An internal error occurred.

Este error puede ocurrir si implementas tu servicio con una configuración de red que usa una configuración de VPC compartida. Pruebe lo siguiente:

  1. Asegúrate de que la configuración de app.yaml sea válida.
  2. Asegúrate de que tu entorno flexible de App Engine cumpla con todos los requisitos para una configuración de VPC compartida. Consulta Usa el entorno flexible de App Engine en una red de VPC compartida.
  3. Asegúrate de haber configurado las cuentas de servicio presentes en tu proyecto. De lo contrario, debes restablecer las cuentas. La región de la subred en el proyecto host de la VPC compartida debe coincidir con la ubicación en la que se creó el entorno de App Engine.

Si el problema persiste, vuelve a implementar el servicio mediante el SDK de Google Cloud. Asegúrate de agregar la marca --verbosity=debug. Comunícate con la Asistencia de Google Cloud y proporciona el resultado del comando.

IP space of {USER_SUBNETWORK_NAME} is exhausted and needs to be expanded.

Si la implementación falla con este mensaje de error, significa que la red configurada para el servicio de App Engine no tiene direcciones que asignar a las instancias nuevas del servicio. A fin de resolver el problema, expande los rangos de VPC en la subred configurada para tu servicio de entorno flexible de App Engine.