Crea una app del entorno de ejecución personalizado en el entorno flexible de App Engine
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.
Los entornos de ejecución personalizados te permiten compilar apps que se ejecutan en un entorno definido por un Dockerfile. Si usas un Dockerfile, puedes usar lenguajes y paquetes que no formen parte deGoogle Cloud , a la vez que usas los recursos y herramientas del entorno flexible de App Engine.
En esta guía de inicio rápido, se inicia un servidor web nginx en App Engine mediante un entorno de ejecución personalizado.
Antes de comenzar
Antes de ejecutar la app de muestra en esta guía de inicio rápido, debes configurar tu entorno y crear un proyecto de Google Cloud para App Engine nuevo:
Crea un proyecto de Google Cloud nuevo mediante la consola de Google Cloud:
Abre la consola de Google Cloud:
Haz clic en Crear proyecto y, luego, asigna un nombre a tu proyecto de Google Cloud nuevo.
Habilita la facturación en tu proyecto de Google Cloud nuevo. Para ello, crea una cuenta de facturación nueva o configura una existente:
Descarga e instala Google Cloud CLI y, luego, inicializa la CLI de gcloud:
Ejecuta el siguiente comando de
gcloud
para crear una aplicación de App Engine y especifica en qué región geográfica deseas que se ejecute la app:gcloud app create
Ubicaciones de App Engine
App Engine es regional, lo que significa que la infraestructura que ejecuta tus apps se encuentra en una región específica, y Google la administra para que esté disponible de forma redundante en todas las zonas dentro de esa región.
El cumplimiento de tus requisitos de latencia, disponibilidad o durabilidad debe ser un factor principal para seleccionar la región en la que se ejecutan las apps. Por lo general, puedes seleccionar la región más cercana a los usuarios de la app, pero debes considerar las ubicaciones en las que App Engine está disponible y las ubicaciones de los otros productos y servicios deGoogle Cloud que usa la app. El uso de servicios en varias ubicaciones puede afectar la latencia de la app y sus precios.
No puedes cambiar la región de una app una vez configurada.
Si ya creaste una aplicación de App Engine, puedes ver su región mediante una de las siguientes opciones:
Ejecuta el comando
gcloud app describe
.Abre el Panel de App Engine en la consola de Google Cloud. La región aparece cerca de la parte superior de la página.
Descarga la app de Hello World
Elige una de las siguientes opciones para descargar la app de Hello World de muestra desde GitHub a tu máquina local:
Clona la app de Hello World de muestra desde el siguiente repositorio:
git clone https://github.com/GoogleCloudPlatform/appengine-custom-runtimes-samples
Descarga la muestra como un archivo .zip y, luego, descomprímelo en un directorio local.
Navega al directorio
nginx
en el que se encuentra el código de muestra, por ejemplo:cd appengine-custom-runtimes-samples/nginx
Ejecuta Hello World en la máquina local
Para probar la app de muestra, descarga e instala Docker y, luego, ejecuta el contenedor de Hello World en tu máquina local.
No hay pasos específicos de App Engine aquí, así que puedes probar la app de muestra con las herramientas y el enfoque que prefieras.
Implementa Hello World en App Engine
Cuando desees implementar la app de muestra en App Engine, sigue estos pasos:
Desde el directorio en el que se encuentran
app.yaml
yDockerfile
, ejecuta el siguiente comando:gcloud app deploy
Obtén más información sobre las marcas opcionales.
A fin de ver que tu app se ejecute en
https://PROJECT_ID.REGION_ID.r.appspot.com
, ejecuta el siguiente comando para iniciar tu navegador:gcloud app browse
Marcas comunes del comando de gcloud
-
Incluye la marca
--version
para especificar un ID que identifique esa versión de la app de forma única. De lo contrario, se generará uno para que lo uses. Por ejemplo:--version [YOUR_VERSION_ID]
. -
Incluye la marca
--project
para especificar un ID del proyecto de Google Cloud alternativo al que inicializaste como predeterminado en la herramienta degcloud
. Por ejemplo:--project [YOUR_PROJECT_ID]
.
Ejemplo:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Para obtener más información sobre la implementación de la app desde la línea de comandos, consulta Prueba e implementa la app.
Para obtener una lista de todas las marcas de comandos, consulta la referencia de gcloud app deploy
.
Limpia
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
- 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.
¿Qué sigue?
Obtén más información sobre Dockerfiles en la referencia de Dockerfile.
Si deseas obtener información para crear tu propio entorno de ejecución personalizado, consulta Compila entornos de ejecución personalizados.
Revisión de código
Hello World es la app de App Engine más simple que pueda existir, ya que crea un contenedor único que ejecuta solo un servicio y una versión. En esta sección, se describen cada uno de los archivos de la app en detalle.
app.yaml
Especifica la configuración de la app. El archivo
app.yaml
debe estar en el mismo directorio que el archivoDockerfile
.La entrada
runtime: custom
le indica a App Engine que busque unDockerfile
que defina tu imagen del entorno de ejecución, yenv: flex
especifica que estás implementando en el entorno flexible.Para obtener más información, consulta la referencia
app.yaml
.Dockerfile
Define el conjunto de instrucciones que se usan a fin de crear la imagen de Docker para el contenedor de la app de muestra. El archivo
Dockerfile
debe estar en el mismo directorio que el archivoapp.yaml
. Este archivoDockerfile
instala el servidor web nginx y copia la configuración básica:El comando FROM compila una imagen base mediante la imagen oficial de Docker para el servidor web nginx.
Mediante este archivo
Dockerfile
, la imagen de contenedor incluirá nginx y todo el contenido del directoriowww/
estará disponible para tu aplicación.
La app de Hello World de muestra también incluye un archivo nginx.conf
, que contiene la información básica de configuración de nginx, además del archivo index.html
, que actúa como página raíz para el servidor web nginx.