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 comandogcloud 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:
El propietario del proyecto de Google Cloud debe configurar el proyecto de Google Cloud para App Engine.
Asegúrate de que tu cuenta de usuario tenga los privilegios necesarios.
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:
- Sube tus imágenes a un repositorio de Artifact Registry. Para obtener más información, consulta Envía y extrae imágenes.
- 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:
Implementa tu versión nuevae incluye la marca
--no-promote
:gcloud app deploy --no-promote
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.Cuando desees enviar tráfico a la nueva versión, usa la consola de Google Cloud para migrar el tráfico:
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 comandogcloud 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:
El agente de servicio del entorno flexible de App Engine no está presente en tu proyecto o no tiene el rol
App Engine flexible environment Service Agent
. Para volver a agregar la cuenta de servicio del agente a tu proyecto, otorga los permisos de IAM correctos. Consulta Restablece un agente de servicio borrado.La cuenta de servicio de App Engine predeterminada no está presente en tu proyecto. Si la cuenta de servicio de App Engine se quitó antes de que transcurran 30 días desde su eliminación, puedes restablecerla.
Tu proyecto está en una organización que aplica la política
constraints/gcp.resourceLocations
, y la organización no permite la creación de recursos en la misma región en la que tu App Engine se creó. Debes anular la política deconstraints/gcp.resourceLocations
aplicada de manera forzosa para tu proyecto y permitir las ubicaciones multirregionales en la misma región en la que se crea la app de App Engine.
Por ejemplo, si tu app de App Engine se crea en la región
europe-west
, aunque la región se asigna a las ubicacioneseurope-west1
, debes modificar la restricción a fin de permitir recursos enin:eu-locations
, que incluye todas las regiones de laEU
. Esto es necesario porque los buckets que creó App Engine son multirregionales. Si tu app de App Engine se crea en la regiónUS
, debes permitirin:us-locations
y, si tu app se crea en las regionesASIA
, debes permitirin: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:
- Asegúrate de que la configuración de
app.yaml
sea válida. - 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.
- 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.
- Asegúrate de que la configuración de
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.