Guía de inicio rápido para Node.js 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 seleccionas cuando creas tu app. El código no corresponde a un país o provincia, aunque algunos ID de región puedan parecer similares a los códigos de país y provincia de uso común. Incluir REGION_ID.r en las URL de App Engine es opcional para las apps existentes, y pronto será obligatorio para todas las aplicaciones nuevas.

A fin de garantizar una transición sin problemas, estamos actualizando App Engine con lentitud 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 necesitas actualizar las URL ni realizar otros cambios una vez que el ID de región esté disponible en ellas.

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

Esta guía de inicio rápido describe cómo crear una aplicación pequeña de App Engine que muestre un mensaje breve.

Antes de comenzar

Antes de ejecutar y, además, implementar esta guía de inicio rápido, instala el SDK de Cloud y configura un proyecto de Cloud para App Engine:

  1. Descarga y, luego, instala el SDK de Cloud:

    Descargar el SDK

    Nota: Si ya tienes instalado el SDK de Cloud, ejecuta el siguiente comando para actualizarlo:

    gcloud components update
    
  2. Crea un proyecto nuevo:

    gcloud projects create [YOUR_PROJECT_ID] --set-as-default
    

    Reemplaza [YOUR_PROJECT_ID] por una string de caracteres que identifique el proyecto de manera única. Por ejemplo, my-project-24.

    Verifica si se creó el proyecto:

    gcloud projects describe [YOUR_PROJECT_ID]
    

    Verás los detalles del proyecto, que deberían ser similares a los siguientes:

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. Inicializa tu aplicación de App Engine con el proyecto y selecciona su región:

    gcloud app create --project=[YOUR_PROJECT_ID]
    

    Cuando se te solicite, selecciona la región en la que deseas que se ubique tu aplicación de App Engine.

  4. Asegúrate de tener habilitada la facturación para tu proyecto. Debes tener una cuenta de facturación vinculada a tu proyecto para que la aplicación se pueda implementar en App Engine.

    Habilitar facturación

    La implementación del entorno flexible incurrirá en costos mientras esté activa. Limpia el proyecto cuando hayas terminado para evitar que continúe la facturación.

  5. Instala los siguientes requisitos previos:

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 manera redundante en todas las zonas dentro de esa región.

El cumplimiento de tus requisitos de latencia, disponibilidad o durabilidad debe ser un factor primario para seleccionar la región donde se ejecutan tus aplicaciones. Por lo general, puedes seleccionar la región más cercana a la de los usuarios de tu app, pero debes considerar las ubicaciones en las que App Engine está disponible, así como las ubicaciones de los otros productos y servicios de Google Cloud que tu app. Usar servicios en varias ubicaciones puede afectar la latencia de la app y los 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:

En esta guía de inicio rápido, se muestra una aplicación de Node.js simple que se escribió con el marco de trabajo Express.js.

Descarga la app de Hello World

Creamos una app de Hello World simple para Node.js a fin de que puedas familiarizarte con rapidez con la implementación de una app en Google Cloud.

  1. Clona el repositorio de la app de muestra Hello World al equipo local.

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

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

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

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

Ejecuta Hello World en tu máquina local

  1. Instala las dependencias de este proyecto.

    npm install
    

    Si usas Yarn, ejecuta lo siguiente:

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

    npm start
    

    Si usas Yarn, ejecuta lo siguiente:

    yarn start
    
  3. Visualiza la app en el navegador web:

    • Si usas Cloud Shell, en la barra de herramientas, haz clic en Vista previa web  y selecciona Vista previa en el puerto 8080 en su lugar.

    • Si no usas Cloud Shell, ingresa la siguiente dirección:

    http://localhost:8080

El mensaje de Hello World de la aplicación de muestra se ve en la página. En la ventana de la terminal, presiona Ctrl + C para salir del servidor web.

Implemente y ejecute Hello World en App Engine

Para implementar la app en el entorno de App Engine Flexible, haz lo siguiente:

  1. Implementa la app de Hello World mediante la ejecución del siguiente comando desde el directorio hello-world/flexible:

    gcloud app deploy

    Obtén más información sobre las marcas opcionales.

    Marcas de comando gcloud comunes

    • 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 Cloud alternativo al que inicializaste como predeterminado en la herramienta de gcloud. 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.

  2. Inicia tu navegador para ver la app en https://PROJECT_ID.REGION_ID.r.appspot.com

    gcloud app browse
    PROJECT_ID representa tu ID del proyecto de Google Cloud.

Esta vez, la página que muestra el mensaje Hello World se envía mediante un servidor web que se ejecuta en una instancia de App Engine.

¡Felicitaciones! Implementaste tu primera app de Node.js en el entorno flexible de App Engine.

Si encontraste algún error cuando implementaste tu aplicación, consulta las sugerencias para solucionar problemas.

Consulta las siguientes secciones para obtener información sobre la limpieza y los vínculos a los próximos pasos que puedes seguir.

Limpia

Para evitar que se apliquen cargos, puedes borrar el proyecto de Cloud a fin de detener la facturación de todos los recursos que se usan en ese proyecto.

  1. En Cloud Console, ve a la página Administrar recursos.

    Ir a la página Administrar 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 haz clic en Cerrar para borrar el proyecto.

Qué sigue

Conoce toda la plataforma

Ahora que sabes cómo desarrollar y también implementar apps de App Engine, puedes explorar el resto de Google Cloud. Ya tienes el SDK de Cloud instalado, que te brinda las herramientas para interactuar con productos como Cloud SQL, Cloud Storage, Firestore y más.

Si deseas ver un instructivo guiado que te enseñe cómo crear una app que utilice toda la plataforma, no solo App Engine, revisa nuestra guía de inicio rápido sobre la creación de la app de Bookshelf.

Aprende sobre el entorno flexible de App Engine

Aquí hay algunos temas para ayudarte a continuar tu aprendizaje sobre App Engine.

Revisión del código de Hello World

Hello World es la aplicación de App Engine más simple que pueda existir, dado que solo contiene un servicio, una versión y todo el código se ubica dentro del directorio raíz de la app. Esta sección describe cada archivo de la app en detalle.

app.js

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

El siguiente código muestra el mensaje “Hello World” para responder a las solicitudes de clientes web, mediante 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 de implementación de una app:

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/nodejs/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 entorno de ejecución que usa la aplicación y configura env: flex para especificar que esta aplicación usa el entorno flexible.

package.json

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

{
  "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": ">=8.0.0"
  },
  "scripts": {
    "start": "node app.js",
    "test": "mocha --exit test/*.test.js"
  },
  "dependencies": {
    "express": "^4.16.3"
  },
  "devDependencies": {
    "mocha": "^8.0.0",
    "supertest": "^4.0.2"
  }
}

Este package.json especifica que la aplicación usa Node.js v8.0.0 o una versión posterior, depende de express, y que node app.js se usa para iniciar la aplicación. Para obtener más información sobre cómo instalar y ejecutar tu app, consulta la documentación sobre el entorno de ejecución de Node.js.