Compila e implementa un servicio Node.js

Aprende a crear una aplicación simple de Hello World, empaquetarla en una imagen de contenedor, subirla a Container Registry y, luego, implementarla en Cloud Run. Puedes usar otros lenguajes además de los que se muestran.


Para obtener orientación paso a paso directamente sobre esta tarea directamente en el editor de Cloud Shell, haz clic en Guiarme:

GUIARME


En las siguientes secciones, se explican los mismos pasos que cuando se hace clic en Guiarme.

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de Google Cloud Console, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Comprueba que la facturación esté habilitada en tu proyecto.

    Descubre cómo puedes habilitar la facturación

  4. Instala e inicializa el SDK de Cloud.

Escribe la aplicación de muestra

Para escribir una aplicación en Node.js, sigue estos pasos:

  1. Crea un directorio nuevo llamado helloworld y usa el comando de cambio de directorio en él:

    mkdir helloworld
    cd helloworld
    
  2. Crea un archivo package.json con el siguiente contenido:

    {
      "name": "helloworld",
      "description": "Simple hello world sample in Node",
      "version": "1.0.0",
      "private": true,
      "main": "index.js",
      "scripts": {
        "start": "node index.js"
      },
      "engines": {
        "node": ">= 12.0.0"
      },
      "author": "Google LLC",
      "license": "Apache-2.0",
      "dependencies": {
        "express": "^4.17.1"
      }
    }
    
  3. En el mismo directorio, crea un archivo index.js y copia las siguientes líneas en él:

    const express = require('express');
    const app = express();
    
    app.get('/', (req, res) => {
      const name = process.env.NAME || 'World';
      res.send(`Hello ${name}!`);
    });
    
    const port = process.env.PORT || 8080;
    app.listen(port, () => {
      console.log(`helloworld: listening on port ${port}`);
    });

    Con este código, se crea un servidor web básico que escucha en el puerto definido por la variable de entorno PORT.

La app está lista para implementarse.

Implementa en Cloud Run desde la fuente

Importante: En esta guía de inicio rápido, se supone que tienes funciones de propietario o de editor en el proyecto que usas para la guía de inicio rápido. De lo contrario, consulta los permisos de implementación de Cloud Run, los permisos de Cloud Build y los permisos de Artifact Registry para conocer los permisos necesarios.

Para implementar la imagen de contenedor, haz lo siguiente:

  1. Realiza la implementación desde la fuente con el siguiente comando:

    gcloud run deploy

    Si se te solicita que habilites la API, presiona y para habilitarla.

    1. Cuando se te solicite la ubicación del código fuente, presiona Intro para implementar la carpeta actual.

    2. Cuando se te solicite el nombre del servicio, presiona Intro para aceptar el nombre predeterminado, helloworld.

    3. Si se te solicita que habilites la API de Artifact Registry, presiona “y” para responder.

    4. Cuando se te solicite la región, selecciona la región que prefieras, por ejemplo, us-central1.

    5. Se te solicitará permitir invocaciones no autenticadas; responde y.

    Luego, espera un momento a que finalice la implementación. Si la operación se completa de forma correcta, la línea de comandos mostrará la URL de servicio.

  2. Abre la URL de servicio en un navegador web para visitar el contenedor implementado.

Ubicaciones de Cloud Run

Cloud Run es regional, lo que significa que la infraestructura que ejecuta los servicios se ubica en una región específica, y Google la administra para que esté disponible de manera redundante en todas las zonas de esa región.

El cumplimiento de los requisitos de latencia, disponibilidad o durabilidad es el factor principal para seleccionar la región en la que se ejecutan los servicios de Cloud Run. Por lo general, puedes seleccionar la región más cercana a los usuarios, pero debes considerar la ubicación de los otros productos de Google Cloud que usa el servicio de Cloud Run. Si usas productos de Google Cloud en varias ubicaciones, la latencia y el costo del servicio pueden verse afectados.

Cloud Run está disponible en las siguientes regiones:

Sujetas a los Precios del nivel 1

Sujetas a los Precios del nivel 2

  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seúl, Corea del Sur)
  • asia-southeast1 (Singapur)
  • asia-southeast2 (Yakarta)
  • asia-south1 (Bombay, India)
  • asia-south2 Delhi (India)
  • australia-southeast1 (Sídney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsovia, Polonia)
  • europe-west2 (Londres, Reino Unido)
  • europe-west3 (Fráncfort, Alemania)
  • europe-west6 (Zúrich, Suiza) Ícono de la hoja Bajo nivel de CO2
  • northamerica-northeast1 (Montreal) Ícono de la hoja Bajo nivel de CO2
  • northamerica-northeast2 (Toronto)
  • southamerica-east1 (São Paulo, Brasil) Ícono de la hoja Bajo nivel de CO2
  • us-west2 (Los Ángeles)
  • us-west3 (Las Vegas)
  • us-west4 (Salt Lake City)

Si ya creaste un servicio de Cloud Run, puedes ver la región en el panel de Cloud Run en Cloud Console.

¡Felicitaciones! Acaba de implementar una imagen de contenedor del código fuente en Cloud Run. Cloud Run reduce la escala de la imagen de contenedor de forma automática y horizontal para controlar las solicitudes que se reciben y, luego, escala horizontalmente cuando disminuye la demanda. Solo debes pagar por la CPU, la memoria y las herramientas de redes que se utilicen durante la administración de la solicitud.

Limpia

Quita el proyecto de prueba

Si bien Cloud Run no cobra cuando el servicio no se usa, es posible que se te cobre por el almacenamiento de la imagen de contenedor en Container Registry. Puedes borrar la imagen o borrar el proyecto de Cloud para evitar que se apliquen cargos. Si borras el proyecto de Cloud, se dejan de facturar todos los recursos que usaste en ese proyecto.

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

    Ir a Administrar recursos

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

¿Qué sigue?

Para obtener más información sobre cómo compilar un contenedor a partir del código fuente y enviarlo a un repositorio, consulta los siguientes vínculos: