ID de región
REGION_ID
es un código abreviado que Google asigna en función de la región que seleccionas 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 manera local
Para probar las funciones de 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 tu implementación de forma automática en una imagen de contenedor y, luego, esa imagen se 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.
Debes asegurarte de que tu cuenta de usuario incluya 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 mediante la orientación y la implementación de 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 app.yaml
en un proyecto de Google Cloud específico, 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 sobre este comando, consulta la referencia de gcloud app deploy
.
Omite 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, primero debes subir las imágenes a un repositorio de imágenes de contenedor antes de poder implementarlas 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 Google Container Registry y, luego, especificar la URL de la imagen en la marca --image-url
del comando:
gcloud app deploy --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE
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 artefactos y Automatiza compilaciones con 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 tu 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
Realiza pruebas en App Engine
Antes de configurar una versión nueva para que reciba 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 nueva e 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 comenzar 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.
Soluciona 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 predeterminado de Cloud Storage 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 los siguientes casos:
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
. Puedes volver a agregar la cuenta de servicio del agente a tu proyecto si le otorgas 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.
[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 tu configuración de
app.yaml
sea válida. - Asegúrate de que tu entorno flexible de App Engine cumpla con todos los requisitos de 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 tu 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.