Implementa y prueba 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 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. Incluir REGION_ID.r en las URL de App Engine es opcional en el caso de las apps existentes, y pronto será obligatorio para todas las apps nuevas.

A fin de garantizar una transición sin problemas, estamos actualizando App Engine de forma paulatina para usar los ID de región. Si aún no actualizamos tu proyecto de Google Cloud, no verás un ID de región para la app. Dado que el ID es opcional en las apps existentes, no es necesario que actualices las URL ni realices otros cambios una vez que el ID de región esté disponible en las apps existentes.

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

Aprende cómo ejecutar, implementar y probar tu aplicación de manera local en App Engine.

Cómo ejecutar de manera local

Si deseas probar las funciones de tu aplicación antes de implementarla, debes ejecutarla en tu entorno local con las herramientas para desarrolladores que utilizas generalmente.

Implementa tu aplicación

Implementa la aplicación en App Engine mediante el comando gcloud app deploy. Con este comando, se compila de manera automática una imagen de contenedor mediante el servicio de Cloud Build y, luego, se implementa en el entorno flexible de App Engine. El contenedor incluirá las modificaciones locales que realizaste en la imagen del entorno de ejecución.

Para implementar tus aplicaciones de manera programática, utiliza la API de administrador.

Antes de comenzar

Antes de implementar tu aplicación:

Cómo garantizar una implementación exitosa

Si habilitas las verificaciones de estado actualizadas, las implementaciones se revierten en caso de que tu aplicación no alcance un buen estado.

Cuando implementas tu primera aplicación en el entorno flexible, es posible que se produzca una demora por la configuración de tu máquina virtual (VM) y otra infraestructura. Después de la configuración inicial, las verificaciones de estado se aseguran de que tu instancia esté en buen estado y lista para recibir el tráfico. Si la aplicación no alcanza un estado que muestre que está lista en un período específico, indicado por el campo initial_delay_sec en la sección liveness_check del archivo app.yaml, la implementación falla y se revierte.

Tu aplicación puede necesitar más tiempo para estar lista. Por ejemplo, puedes inicializar tu aplicación si descargas archivos grandes o precargas cachés. Si usas verificaciones de estado actualizadas, puedes modificar la configuración app_start_timeout_sec de la sección readiness_check del archivo app.yaml para aumentar la cantidad de tiempo.

Si la implementación falla, asegúrate de que la API de Cloud Build esté habilitada en el proyecto. App Engine habilita esta API de forma automática la primera vez que implementas una app, pero si alguien inhabilitó la API luego, las implementaciones fallará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.

Para implementar una versión del servicio de la aplicación, ejecuta el siguiente comando desde el directorio en el que se encuentra ubicado el archivo app.yaml del servicio:

gcloud app deploy

Si no especificas los archivos con el comando, solo se implementará el archivo app.yaml en el directorio actual. De forma predeterminada, el comando deploy genera un ID único de la versión que implementas, implementa la versión en el proyecto de Cloud que configuraste para que use la herramienta de gcloud y enruta todo el tráfico a la versión nueva.

Puedes cambiar el comportamiento predeterminado del comando si orientas los archivos específicos o incluyes parámetros adicionales:

  • Para implementar los otros archivos de configuración de tu servicio, debes implementar y orientar 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 realizar una implementación en un proyecto de Cloud específico, usa la marca --project.

Por ejemplo, para implementar el servicio que define app.yaml en un proyecto específico de 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 sobre este comando, consulta la referencia de gcloud app deploy.

Implementa varios servicios

Puedes usar el mismo comando de implementación para implementar o actualizar varios de los servicios que conforman tu aplicación.

Para implementar varios servicios, debes implementar cada archivo app.yaml del servicio por separado. Por ejemplo:

gcloud app deploy service1/app.yaml
gcloud app deploy service2/app.yaml

Puedes especificar varios archivos con un comando de implementación simple:

gcloud app deploy service1/app.yaml service2/app.yaml

Requisitos para implementar varios servicios

  • Debes implementar una versión de la aplicación en el servicio default antes de poder crear y, luego, implementar los servicios posteriores.

  • El ID de cada uno de los servicios se debe especificar en los archivos de configuración app.yaml correspondientes. Para especificar el ID de servicio, incluye la definición del elemento service en cada archivo de configuración. De forma predeterminada, si se excluye la definición de este elemento del archivo de configuración, se implementa la versión en el servicio default.

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 Platform, 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 para PHP

Si quieres compilar una aplicación PHP de entorno de ejecución personalizado desde cero, utiliza una imagen base de Dockerfile:

Versión Comando de Docker
PHP 5.6 FROM gcr.io/google-appengine/php56
PHP 7.0 FROM gcr.io/google-appengine/php70
PHP 7.1 FROM gcr.io/google-appengine/php71
PHP 7.2 FROM gcr.io/google-appengine/php72
PHP 7.3 FROM gcr.io/google-appengine/php73

El código fuente de las imágenes base está disponible en: https://github.com/GoogleCloudPlatform/php-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:

  1. Implementa la versión nueva e incluye la marca --no-promote:

    gcloud app deploy --no-promote
  2. Accede a la nueva versión 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 Visor de registros de Google Cloud Console. 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 Cloud Console 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:

Para obtener más información sobre cómo orientar servicios y versiones específicos, consulta Cómo se enrutan las solicitudes.

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 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 función de propietario tienen los permisos necesarios para crear aplicaciones de App Engine.
502 Bad Gateway
Es posible que el proyecto de 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.