Guía de inicio rápido para Node.js en el entorno flexible de App Engine

En esta guía de inicio rápido aprenderás a crear una pequeña aplicación de App Engine que muestra un mensaje corto.

Antes de empezar

Antes de ejecutar y desplegar esta muestra, sigue estos pasos:

  1. Usa la consola de GCP para crear un nuevo proyecto de GCP, crear una aplicación de App Engine y habilitar la facturación:
    Ir a App Engine

    Cuando se te solicite, selecciona la región donde deseas ubicar tu aplicación de App Engine y luego habilita la facturación.

  2. Sigue estos pasos previos localmente:
    1. Descarga e instala git.
    2. Prepara tu entorno para el desarrollo de Node.js.
    3. Descarga e instala el SDK de Google Cloud y luego inicializa la herramienta gcloud:
      Descargar el SDK
  3. También puedes usar Google Cloud Shell, que viene con git y el SDK de Google Cloud ya instalados, y muchas otras funciones, como compatibilidad de lenguajes y editores de código.

    Después de que se inicie Google Cloud Shell, puedes continuar con el resto de este tutorial y ejecutar tus comandos dentro de Cloud Shell.

Ubicaciones de App Engine

App Engine es regional, lo que significa que la infraestructura que ejecuta las aplicaciones se encuentra en una región específica y está administrada por Google para que esté disponible de manera 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. En general, puedes seleccionar la región más cercana a los usuarios de la aplicación, pero deberías tener en cuenta la ubicación de los demás productos y servicios de GCP que utiliza tu aplicación. El uso de servicios en varias ubicaciones puede afectar a la latencia de la aplicación y a los precios.

App Engine está disponible en las siguientes regiones:

  • northamerica-northeast1 (Montreal)
  • us-central (Iowa)
  • us-east1 (Carolina del Sur)
  • us-east4 (Virginia del Norte)
  • southamerica-east1 (São Paulo)*
  • europe-west (Bélgica)
  • europe-west2 (Londres)
  • europe-west3 (Fráncfort)
  • asia-northeast1 (Tokio)
  • asia-south1 (Bombay)
  • australia-southeast1 (Sídney)

* Para los clientes que utilizan la región de São Paulo, todos los SLA de productos regionales siguen vigentes. Sin embargo, la disponibilidad o el rendimiento de las funciones compatibles en más de una región y dentro de cada una de ellas podría verse reducido temporalmente si dicha funcionalidad abarca América del Norte y América del Sur.

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 consultar la región ejecutando el comando gcloud app describe o abriendo el panel de App Engine en la consola de GCP. La región de tu aplicación de App Engine aparece en http://[YOUR_PROJECT_ID].appspot.com.

Esta guía de inicio rápido muestra una aplicación sencilla de Node.js escrita con el framework Express.js que se puede desplegar en App Engine.

Descargar la aplicación Hello World

Hemos creado una sencilla aplicación Hello World para Node.js, para que puedas tener una idea rápida de cómo desplegar una aplicación en el entorno flexible de App Engine. Sigue estos pasos desde una línea de comandos para descargar Hello World en tu máquina local.

Descarga la aplicación de muestra y navega hasta el directorio de la aplicación:

  1. Clona el repositorio de la aplicación de muestra Hello World en la máquina local:

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
    

    También puedes descargar la muestra como un archivo ZIP y extraerla.

  2. Accede al directorio que contiene el código de muestra:

    cd nodejs-docs-samples/appengine/hello-world
    

Ejecutar Hello World en tu máquina local

  1. Instala dependencias para este proyecto introduciendo el siguiente comando:

    npm install
    

    o, si usas Yarn:

    yarn install
    
  2. Ejecuta la secuencia de comandos de inicio:

    npm start
    

    o, si usas Yarn:

    yarn start
    
  3. Consulta tu aplicación en el navegador web:

    • Si estás utilizando Cloud Shell, en la barra de herramientas haz clic en Web Preview  (Vista previa web) y selecciona Preview on port 8080 (Vista previa en el puerto 8080).

    • Si no estás usando Cloud Shell, introduce la siguiente dirección:

      http://localhost:8080
      

Puedes ver el mensaje Hello World de la aplicación de muestra en la página.

En la ventana de tu terminal, presiona Ctrl + C para salir del servidor web.

Desplegar y ejecutar Hello World en App Engine

Para desplegar tu aplicación en el entorno flexible de App Engine:

  1. Despliega la aplicación Hello World ejecutando el siguiente comando desde el directorio hello-world:
    gcloud app deploy
    Más información sobre los indicadores opcionales

    Indicadores de comando gcloud habituales

    • Incluye el indicador --version para especificar un ID que identifique de manera única esa versión de tu aplicación; de lo contrario, se generará uno automáticamente. Ejemplo: --version [YOUR_VERSION_ID]
    • Incluye un indicador --project para especificar un ID de proyecto GCP distinto al inicializado de forma predeterminada en la herramienta gcloud. 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 obtener una lista de todos los indicadores de comando, consulta la referencia de gcloud app deploy.

  2. Inicia el navegador y consulta la aplicación en http://YOUR_PROJECT_ID.appspot.com mediante el siguiente comando:
    gcloud app browse
Esta vez, la página que muestra el mensaje "Hello World" la entrega un servidor web que se ejecuta en una instancia de App Engine.

Enhorabuena. Has desplegado tu primera aplicación de Node.js en el entorno flexible de App Engine.

Consulta las siguientes secciones para obtener información sobre la limpieza y los enlaces a los próximos pasos que puedes dar.

Limpieza

Puedes eliminar tu proyecto de GCP para evitar que se te cobren los recursos utilizados en él.

  1. En GCP Console, dirígete a la página Administrar recursos.

    Ir a la página Administración de recursos

  2. En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
  3. En el cuadro de diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.

Siguientes pasos

Ahora que has logrado desplegar Hello World, puedes comenzar a explorar tu próxima aplicación de muestra: Bookshelf. Bookshelf es una aplicación web de Node.js más completa pero básica que utiliza múltiples funciones de Cloud Platform, como el almacenamiento de datos, autenticación, almacenamiento de registros, Pub/Sub y mucho más.

Iniciar el tutorial de la aplicación Bookshelf

Para obtener más información sobre el entorno flexible de App Engine, consulta la visión general de App Engine.

Revisión del código de Hello World

Hello World es la aplicación de App Engine más simple, ya que contiene un único servicio, tiene solo una versión y todo el código se encuentra dentro del directorio raíz de la aplicación. Esta sección describe cada uno de los archivos de la aplicación en detalle.

app.js

El archivo app.js contiene el código JavaScript para iniciar un servidor y responder a las peticiones.

El siguiente código responde a las peticiones de los clientes web mostrando el mensaje "Hello World" a través de un servidor que se ejecuta en el puerto 8080.

const express = require('express');

const app = express();

app.get('/', (req, res) => {
  res.status(200).send('Hello, world!').end();
});

// Start the server
const PORT = process.env.PORT || 8080;
app.listen(PORT, () => {
  console.log(`App listening on port ${PORT}`);
  console.log('Press Ctrl+C to quit.');
});

app.yaml

El archivo app.yaml describe la configuración del despliegue de una aplicación:

runtime: nodejs
env: flex

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/python/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

Aquí, app.yaml especifica el tiempo de ejecución utilizado por la aplicación y establece env: flex, especificando que la aplicación usa el entorno flexible.

package.json

package.json se utiliza para especificar las dependencias de la aplicación, la versión del nodo y el inicio de la aplicación.

{
  "name": "appengine-hello-world",
  "description": "Simple Hello World Node.js sample for Google App Engine Flexible Environment.",
  "version": "0.0.1",
  "private": true,
  "license": "Apache-2.0",
  "author": "Google Inc.",
  "repository": {
    "type": "git",
    "url": "https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git"
  },
  "engines": {
    "node": ">=4.3.2"
  },
  "scripts": {
    "deploy": "gcloud app deploy",
    "start": "node app.js",
    "lint": "samples lint",
    "pretest": "npm run lint",
    "system-test": "samples test app",
    "test": "npm run system-test",
    "e2e-test": "samples test deploy"
  },
  "dependencies": {
    "express": "4.15.4"
  },
  "devDependencies": {
    "@google-cloud/nodejs-repo-tools": "1.4.17"
  },
  "cloud-repo-tools": {
    "test": {
      "app": {
        "msg": "Hello, world!"
      }
    },
    "requiresKeyFile": true,
    "requiresProjectId": true
  }
}

Este package.json especifica que la aplicación utiliza Node.js v4.3.2 o posterior, según express, y que el node app.js sirve para iniciar la aplicación. Para obtener más detalles sobre cómo se instala y ejecuta tu aplicación, consulta la documentación relativa al tiempo de ejecución de Node.js.