Crear una aplicación de tiempo de ejecución personalizado en el entorno flexible de App Engine
ID de región
El REGION_ID
es un código abreviado que Google asigna en función de la región que selecciones al crear tu aplicación. El código no corresponde a un país o provincia, aunque algunos IDs de región pueden parecerse a los códigos de país y provincia que se usan habitualmente. En las aplicaciones creadas después de febrero del 2020, REGION_ID.r
se incluye en las URLs de App Engine. En las aplicaciones creadas antes de esa fecha, el ID de región es opcional en la URL.
Los entornos de ejecución personalizados te permiten crear aplicaciones que se ejecutan en un entorno definido por un Dockerfile. Si usas un Dockerfile, puedes usar lenguajes y paquetes que no formen parte delGoogle Cloud y utilizar los mismos recursos y herramientas que se usan en el entorno flexible de App Engine.
En esta guía de inicio rápido, se inicia un servidor web nginx en App Engine mediante un tiempo de ejecución personalizado.
Antes de empezar
Antes de ejecutar la aplicación de muestra de esta guía de inicio rápido, debes configurar tu entorno y crear un proyecto de App Engine: Google Cloud
Crea un Google Cloud proyecto con la Google Cloud consola:
Abre la Google Cloud consola:
Haz clic en Crear proyecto y, a continuación, ponle un nombre al proyecto. Google Cloud
Habilita la facturación en tu nuevo proyecto Google Cloud creando una cuenta de facturación o configurando una ya creada:
Descarga e instala Google Cloud CLI y, a continuación, inicializa gcloud CLI:
Ejecuta el siguiente comando
gcloud
para crear una aplicación de App Engine y especificar en qué región geográfica quieres que se ejecute:gcloud app create
- Debido a los cambios en el comportamiento predeterminado de cómo usa Cloud Build las cuentas de servicio en los proyectos nuevos y a los cambios en la política de organización de seguridad predeterminada, es posible que tengas que conceder roles adicionales a tu cuenta de servicio de implementación. Para obtener más información sobre cómo conceder roles específicos, consulta la guía de solución de problemas.
Ubicaciones de App Engine
App Engine es regional, lo que significa que la infraestructura que ejecuta tus aplicaciones está ubicada en una región concreta y Google la gestiona para que esté disponible de forma redundante en todas las zonas de esa región.
Cumplir con los requisitos de latencia, disponibilidad o durabilidad son factores principales para seleccionar la región donde se ejecutan tus aplicaciones. Por lo general, puedes seleccionar la región más cercana a los usuarios de tu aplicación, pero debes tener en cuenta las ubicaciones en las que está disponible App Engine, así como las ubicaciones de los demásGoogle Cloud productos y servicios que utilice tu aplicación. Usar servicios en varias ubicaciones puede afectar a la latencia de tu aplicación, así como a su precio.
No es posible cambiar la región de una aplicación después de configurarla.
Si ya has creado una aplicación de App Engine, puedes ver su región de una de las siguientes formas:
Ejecuta el comando
gcloud app describe
.Abre el panel de control de App Engine en la Google Cloud consola. La región aparece cerca de la parte superior de la página.
Descargar la aplicación Hello World
Elige una de las siguientes opciones para descargar la aplicación de ejemplo Hello World de GitHub en tu máquina local:
Clona la aplicación de ejemplo Hello World del siguiente repositorio:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
Descarga el ejemplo como archivo .zip y, a continuación, extráelo a un directorio local.
Ve al directorio
nginx
donde se encuentra el código de ejemplo. Por ejemplo:cd appengine-custom-runtimes-samples/nginx
Ejecutar Hello World en tu máquina local
Para probar la aplicación de ejemplo, descarga e instala Docker y, a continuación, ejecuta el contenedor Hello World en tu máquina local.
Aquí no hay pasos específicos de App Engine, por lo que puedes probar la aplicación de ejemplo con las herramientas y el método que prefieras.
Desplegar Hello World en App Engine
Cuando tengas todo listo para desplegar la aplicación de ejemplo en App Engine, sigue estos pasos:
En el directorio donde se encuentran
app.yaml
yDockerfile
, ejecuta el siguiente comando:gcloud app deploy
Más información sobre los indicadores opcionales
Para ver tu aplicación en
https://PROJECT_ID.REGION_ID.r.appspot.com
, ejecuta el siguiente comando para iniciar tu navegador:gcloud app browse
Marcas de comandos gcloud
habituales
-
Incluya la marca
--version
para especificar un ID que identifique de forma única esa versión de su aplicación. De lo contrario, se generará uno automáticamente. Ejemplo:--version [YOUR_VERSION_ID]
-
Incluye la marca
--project
para especificar un ID de proyecto alternativo Google Cloud al que has inicializado como predeterminado en la herramientagcloud
. Ejemplo:--project [YOUR_PROJECT_ID]
Ejemplo:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Para obtener más información sobre el despliegue de tu aplicación desde la línea de comandos, consulta el apartado sobre cómo probar y desplegar tu aplicación. Para ver una lista de todas las marcas de comandos, consulta la
gcloud app deploy
referencia.
Limpieza
Para evitar que se apliquen cargos en tu cuenta de Google Cloud por los recursos utilizados en esta página, sigue estos pasos.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Siguientes pasos
Consulta más información sobre los Dockerfiles en la referencia de Dockerfile.
Para obtener información sobre cómo crear tu propio tiempo de ejecución personalizado, consulta Crear tiempos de ejecución personalizados.
Revisión de código
Hello World es la aplicación de App Engine más sencilla posible, ya que crea un solo contenedor que ejecuta un solo servicio y una sola versión. En esta sección se describe cada uno de los archivos de la aplicación en detalle.
app.yaml
Especifica la configuración de la aplicación. El archivo
app.yaml
debe estar en el mismo directorio que el archivoDockerfile
.La entrada
runtime: custom
indica a App Engine que busque unDockerfile
que defina la imagen de tu tiempo de ejecución yenv: flex
especifica que vas a desplegar la aplicación en el entorno flexible.Para obtener más información, consulta la referencia de
app.yaml
.Dockerfile
Define el conjunto de instrucciones que se usan para crear la imagen de Docker del contenedor de la aplicación de ejemplo. El archivo
Dockerfile
debe estar en el mismo directorio que el archivoapp.yaml
. EsteDockerfile
instala el servidor web nginx y copia una configuración básica:El comando FROM crea una imagen base con la imagen oficial de Docker del servidor web nginx.
Con este
Dockerfile
, tu imagen de contenedor incluirá nginx y todo el contenido del directoriowww/
estará disponible para tu aplicación.
La aplicación de ejemplo Hello World también incluye un archivo nginx.conf
que contiene la información básica de configuración de nginx, así como el archivo index.html
que sirve como página raíz del servidor web nginx.