

 AWS Cloud9 ya no está disponible para nuevos clientes. Los clientes existentes de AWS Cloud9 pueden seguir utilizando el servicio con normalidad. [Más información](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Tutorial de Node.js para AWS Cloud9
<a name="sample-nodejs"></a>

Este tutorial le permite ejecutar algunos scripts de Node.js en un entorno de AWS Cloud9 desarrollo.

Si sigue este tutorial y crea este ejemplo, es posible que se le cobren cargos a su AWS cuenta. Estos incluyen posibles cargos por servicios como Amazon EC2 y Amazon S3. Para obtener más información, consulte [Amazon EC2 Pricing](https://aws.amazon.com/ec2/pricing/) y [Amazon S3 Pricing](https://aws.amazon.com/s3/pricing/).

**Topics**
+ [Requisitos previos](#sample-nodejs-prereqs)
+ [Paso 1: Instalar las herramientas necesarias](#sample-nodejs-install)
+ [Paso 2: Agregar el código](#sample-nodejs-code)
+ [Paso 3: Ejecutar el código](#sample-nodejs-run)
+ [Paso 4: Instalar y configurar el AWS SDK para JavaScript Node.js](#sample-nodejs-sdk)
+ [Paso 5: Agrega el código AWS del SDK](#sample-nodejs-sdk-code)
+ [Paso 6: ejecuta el código AWS del SDK](#sample-nodejs-sdk-run)
+ [Paso 7: limpiar](#sample-nodejs-clean-up)

## Requisitos previos
<a name="sample-nodejs-prereqs"></a>

Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:
+ **Debe tener un entorno de AWS Cloud9 EC2 desarrollo existente.** En este ejemplo se supone que ya tienes un EC2 entorno conectado a una EC2 instancia de Amazon que ejecuta Amazon Linux o Ubuntu Servidor. Si tiene otro tipo de entorno o sistema operativo, es posible que tenga que adaptar las instrucciones de este ejemplo para configurar herramientas relacionadas. Para obtener más información, consulte [Crear un entorno en AWS Cloud9](create-environment.md).
+ **Ya tiene abierto el AWS Cloud9 IDE del entorno existente.** Al abrir un entorno, AWS Cloud9 abre el IDE de ese entorno en el navegador web. Para obtener más información, consulte [Abrir un entorno en AWS Cloud9](open-environment.md).

## Paso 1: Instalar las herramientas necesarias
<a name="sample-nodejs-install"></a>

En este paso instalará Node.js, necesario para ejecutar esta muestra.

1. En una sesión de terminal en el AWS Cloud9 IDE, ejecute el **`node --version`**comando para confirmar si Node.js ya está instalado. (Para iniciar una nueva sesión del terminal, en la barra de menús, seleccione **Window [Ventana]**, **New Terminal [Nuevo terminal]**). Si es así, el resultado contendrá el número de versión de Node.js. Si Node.js está instalado, continúe en [Paso 2: Agregar el código](#sample-nodejs-code).

1. Ejecute el comando ** `yum update` ** (para Amazon Linux) o ** `apt update` ** (para Ubuntu Server) para garantizar que las últimas actualizaciones de seguridad y correcciones de errores están instaladas.

   Para Amazon Linux:

   ```
   sudo yum -y update
   ```

   Para Ubuntu Server:

   ```
   sudo apt update
   ```

1. Para instalar Node.js, comience por ejecutar este comando para descargar Node Version Manager (nvm). (nvm) es un sencillo script de shell de Bash que resulta útil para instalar y administrar las versiones de Node.js. Para obtener más información, consulte el [administrador de versiones de Node](https://github.com/creationix/nvm/blob/master/README.md) en el sitio GitHub web.)

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
   ```

1. Para comenzar a utilizar nvm, cierre la sesión del terminal e iníciela de nuevo, o cargue el archivo `~/.bashrc` que contiene los comandos para cargar nvm.

   ```
   . ~/.bashrc
   ```

1. Ejecute este comando para instalar Node.js 16 en Amazon Linux 2, Amazon Linux 1 y Ubuntu 18.04. Las instancias de Amazon Linux 1 y Ubuntu 18.04 solo admiten Node.js hasta la v16.

   ```
   nvm install 16
   ```

   Ejecute este comando para instalar la última versión de Node.js en Amazon Linux 2023 y Ubuntu 22.04:

   ```
   nvm install --lts && nvm alias default lts/*
   ```
**nota**  
La última AWS Cloud9 imagen de AL2 023 tiene instalado Node.js 20 y la AWS Cloud9 imagen más reciente de Amazon Linux 2 tiene instalado Node.js 18. Si desea instalar Node.js 18 en Amazon Linux 2 AWS Cloud9 manualmente, ejecute el siguiente comando en la terminal AWS Cloud9 IDE:  

   ```
   C9_NODE_INSTALL_DIR=~/.nvm/versions/node/v18.17.1
   C9_NODE_URL=https://d3kgj69l4ph6w4.cloudfront.net/static/node-amazon/node-v18.17.1-linux-x64.tar.gz
   mkdir -p $C9_NODE_INSTALL_DIR
   curl -fSsl $C9_NODE_URL  | tar xz --strip-components=1 -C "$C9_NODE_INSTALL_DIR"
   nvm alias default v18.17.1
   nvm use default
   echo -e 'nvm use default' >> ~/.bash_profile
   ```

## Paso 2: Agregar el código
<a name="sample-nodejs-code"></a>

En el AWS Cloud9 IDE, cree un archivo con este contenido y guárdelo con el nombre`hello.js`. (Para crear un archivo, en la barra de menús, elija **File** [Archivo], **New File** [Archivo nuevo]. Para guardar el archivo, elija **File** [Archivo], **Save** [Guardar]).

```
console.log('Hello, World!');

console.log('The sum of 2 and 3 is 5.');

var sum = parseInt(process.argv[2], 10) + parseInt(process.argv[3], 10);

console.log('The sum of ' + process.argv[2] + ' and ' +
  process.argv[3] + ' is ' + sum + '.');
```

## Paso 3: Ejecutar el código
<a name="sample-nodejs-run"></a>

1. En el AWS Cloud9 IDE, en la barra de menús, seleccione **Ejecutar**, **Ejecutar configuraciones**, **Nueva configuración de ejecución**.

1. En la pestaña **[New] - Idle (Nuevo - Inactivo)**, elija **Runner: Auto (Ejecutor: automático)** y, a continuación, elija **Node.js**.

1. En **Command (Comando)**, escriba `hello.js 5 9`. En el código, `5` representa `process.argv[2]` y `9` representa `process.argv[3]`. (`process.argv[0]` representa el nombre del tiempo de ejecución (`node`) y `process.argv[1]` representa el nombre del archivo (`hello.js`)).

1. Elija el botón **Run (Ejecutar)** y compare los resultados.

   ```
   Hello, World!
   The sum of 2 and 3 is 5.
   The sum of 5 and 9 is 14.
   ```

![\[Salida de Node.js después de ejecutar el código en el AWS Cloud9 IDE\]](http://docs.aws.amazon.com/es_es/cloud9/latest/user-guide/images/ide-nodejs-simple.png)


## Paso 4: Instalar y configurar el AWS SDK para JavaScript Node.js
<a name="sample-nodejs-sdk"></a>

Al ejecutar los scripts de Node.js AWS Cloud9, puede elegir entre el AWS SDK para la JavaScript versión 3 (V3) y el AWS SDK anterior para la JavaScript versión 2 (V2). Al igual que con la versión 2, la versión 3 le permite trabajar fácilmente con Amazon Web Services, pero se ha incorporado TypeScript y añade varias funciones solicitadas con frecuencia, como los paquetes modularizados.

------
#### [ AWS SDK for JavaScript (V3) ]

Puede mejorar este ejemplo para usar el AWS SDK de Node.js para JavaScript crear un bucket de Amazon S3, enumerar los buckets disponibles y, a continuación, eliminar el bucket que acaba de crear.

En este paso, debe instalar y configurar el módulo cliente de servicio Amazon S3 del AWS SDK para JavaScript Node.js, que proporciona una forma cómoda de interactuar con el AWS servicio Amazon S3 desde su JavaScript código.

Si desea utilizar otros AWS servicios, debe instalarlos por separado. Para obtener más información sobre la instalación de AWS módulos, consulte [la *Guía para AWS desarrolladores (V3).*](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/working-with-services) Para obtener información sobre cómo empezar a utilizar Node.js y el AWS SDK para JavaScript (V3), consulte Cómo [empezar a utilizar Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/getting-started-nodejs.html#getting-started-nodejs-setup-structure) en la *Guía del AWS SDK para JavaScript desarrolladores (V3*).

 Tras instalar el AWS SDK para JavaScript Node.js, debe configurar la administración de credenciales en su entorno. El AWS SDK JavaScript de Node.js necesita estas credenciales para interactuar con AWS los servicios.

**Para instalar el AWS SDK JavaScript en Node.js**

Use npm para ejecutar el comando **`install`**.

```
npm install @aws-sdk/client-s3
```

Para obtener más información, consulte [Instalación del SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-up.html#installing-jssdk) en la *Guía para AWS SDK para JavaScript desarrolladores*.

**Para configurar la administración de credenciales en el entorno**

Cada vez que utilices el AWS SDK JavaScript de Node.js para llamar a un AWS servicio, debes proporcionar un conjunto de credenciales con la llamada. Estas credenciales determinan si el AWS SDK JavaScript de Node.js tiene los permisos adecuados para realizar esa llamada. Si las credenciales no cubren los permisos adecuados, la llamada no se realizará correctamente.

En este paso, se almacenan las credenciales dentro del entorno. Para ello, siga las instrucciones de [Llamar Servicios de AWS desde un entorno de AWS Cloud9](credentials.md) y, a continuación, vuelva a este tema.

Para obtener información adicional, consulte [Configuración de credenciales en Node.js](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html) en la *Guía para desarrolladores de AWS SDK para JavaScript *.

------
#### [ AWS SDK for JavaScript (V2) ]

Puede mejorar este ejemplo para usar el AWS SDK de Node.js para JavaScript crear un bucket de Amazon S3, enumerar los buckets disponibles y, a continuación, eliminar el bucket que acaba de crear.

En este paso, instalará y configurará el AWS SDK para JavaScript Node.js, que proporciona una forma cómoda de interactuar con AWS servicios como Amazon S3 desde su JavaScript código. Tras instalar el AWS SDK JavaScript en Node.js, debe configurar la administración de credenciales en su entorno. El AWS SDK JavaScript de Node.js necesita estas credenciales para interactuar con AWS los servicios.

**Para instalar el AWS SDK JavaScript en Node.js**

Use npm para ejecutar el comando **`install`**.

```
npm install aws-sdk
```

Para obtener más información, consulte [Instalación del SDK para JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/installing-jssdk.html) en la *Guía para AWS SDK para JavaScript desarrolladores*.

**Para configurar la administración de credenciales en el entorno**

Cada vez que utilices el AWS SDK JavaScript de Node.js para llamar a un AWS servicio, debes proporcionar un conjunto de credenciales con la llamada. Estas credenciales determinan si el AWS SDK JavaScript de Node.js tiene los permisos adecuados para realizar esa llamada. Si las credenciales no cubren los permisos adecuados, la llamada no se realizará correctamente.

En este paso, se almacenan las credenciales dentro del entorno. Para ello, siga las instrucciones de [Llamar Servicios de AWS desde un entorno de AWS Cloud9](credentials.md) y, a continuación, vuelva a este tema.

Para obtener información adicional, consulte [Configuración de credenciales en Node.js](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/setting-credentials-node.html) en la *Guía para desarrolladores de AWS SDK para JavaScript *.

------

## Paso 5: Agrega el código AWS del SDK
<a name="sample-nodejs-sdk-code"></a>

------
#### [ AWS SDK for JavaScript (V3) ]

En este paso, agregará algo más de código, esta vez para interactuar con Amazon S3 y crear un bucket, ver una lista de los buckets disponibles y después eliminar el bucket que acaba de crear. Ejecutará este código más adelante.

En el AWS Cloud9 IDE, cree un archivo con este contenido y guárdelo con el nombre`s3.js`.

```
import {
  CreateBucketCommand,
  DeleteBucketCommand,
  ListBucketsCommand,
  S3Client,
} from "@aws-sdk/client-s3";

const wait = async (milliseconds) => {
  return new Promise((resolve) => setTimeout(resolve, milliseconds));
};

export const main = async () => {
  const client = new S3Client({});
  const now = Date.now();
  const BUCKET_NAME = `easy-bucket-${now.toString()}`;

  const createBucketCommand = new CreateBucketCommand({ Bucket: BUCKET_NAME });
  const listBucketsCommand = new ListBucketsCommand({});
  const deleteBucketCommand = new DeleteBucketCommand({ Bucket: BUCKET_NAME });

  try {
    console.log(`Creating bucket ${BUCKET_NAME}.`);
    await client.send(createBucketCommand);
    console.log(`${BUCKET_NAME} created`);

    await wait(2000);

    console.log(`Here are your buckets:`);
    const { Buckets } = await client.send(listBucketsCommand);
    Buckets.forEach((bucket) => {
      console.log(` • ${bucket.Name}`);
    });

    await wait(2000);

    console.log(`Deleting bucket ${BUCKET_NAME}.`);
    await client.send(deleteBucketCommand);
    console.log(`${BUCKET_NAME} deleted`);
  } catch (err) {
    console.error(err);
  }
};

main();
```

------
#### [ AWS SDK for JavaScript (V2) ]

En este paso, agregará algo más de código, esta vez para interactuar con Amazon S3 y crear un bucket, ver una lista de los buckets disponibles y después eliminar el bucket que acaba de crear. Ejecutará este código más adelante.

En el AWS Cloud9 IDE, cree un archivo con este contenido y guárdelo con el nombre`s3.js`.

```
if (process.argv.length < 4) {
  console.log(
    "Usage: node s3.js <the bucket name> <the AWS Region to use>\n" +
      "Example: node s3.js my-test-bucket us-east-2"
  );
  process.exit(1);
}

var AWS = require("aws-sdk"); // To set the AWS credentials and region.
var async = require("async"); // To call AWS operations asynchronously.

AWS.config.update({
  region: region,
});

var s3 = new AWS.S3({ apiVersion: "2006-03-01" });
var bucket_name = process.argv[2];
var region = process.argv[3];

var create_bucket_params = {
  Bucket: bucket_name,
  CreateBucketConfiguration: {
    LocationConstraint: region,
  },
};

var delete_bucket_params = { Bucket: bucket_name };

// List all of your available buckets in this AWS Region.
function listMyBuckets(callback) {
  s3.listBuckets(function (err, data) {
    if (err) {
    } else {
      console.log("My buckets now are:\n");

      for (var i = 0; i < data.Buckets.length; i++) {
        console.log(data.Buckets[i].Name);
      }
    }

    callback(err);
  });
}

// Create a bucket in this AWS Region.
function createMyBucket(callback) {
  console.log("\nCreating a bucket named " + bucket_name + "...\n");

  s3.createBucket(create_bucket_params, function (err, data) {
    if (err) {
      console.log(err.code + ": " + err.message);
    }

    callback(err);
  });
}

// Delete the bucket you just created.
function deleteMyBucket(callback) {
  console.log("\nDeleting the bucket named " + bucket_name + "...\n");

  s3.deleteBucket(delete_bucket_params, function (err, data) {
    if (err) {
      console.log(err.code + ": " + err.message);
    }

    callback(err);
  });
}

// Call the AWS operations in the following order.
async.series([
  listMyBuckets,
  createMyBucket,
  listMyBuckets,
  deleteMyBucket,
  listMyBuckets,
]);
```

------

## Paso 6: ejecuta el código AWS del SDK
<a name="sample-nodejs-sdk-run"></a>

1. Habilite el código para llamar a las operaciones de Amazon S3 de forma asincrónica mediante la utilización de npm para ejecutar el comando ** `install` **.

   ```
   npm install async
   ```

1. En el AWS Cloud9 IDE, en la barra de menús, elija **Ejecutar**, **Ejecutar configuraciones**, **Nueva configuración de ejecución**.

1. En la pestaña **[New] - Idle (Nuevo - Inactivo)**, elija **Runner: Auto (Ejecutor: automático)** y, a continuación, elija **Node.js**.

1. Si utiliza el AWS SDK para JavaScript (V3), en Tipo `s3.js` de **comando**. Si utilizas el AWS SDK para Javascript (v2), para el tipo de **comando**`s3.js my-test-bucket us-east-2`, donde `my-test-bucket` aparece el nombre del bucket que quieres crear y, después, eliminar, y `us-east-2` el ID de la AWS región en la que quieres crear el bucket. Para obtener más información IDs, consulte [Amazon Simple Storage Service (Amazon S3)](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region) en. *Referencia general de Amazon Web Services*
**nota**  
Los nombres de los buckets de Amazon S3 deben ser únicos en todas AWS las AWS cuentas, no solo en ellas.

1. Elija el botón **Run (Ejecutar)** y compare los resultados.

   ```
   My buckets now are:
   
   Creating a new bucket named 'my-test-bucket'...
   
   My buckets now are:
   
   my-test-bucket
   
   Deleting the bucket named 'my-test-bucket'...
   
   My buckets now are:
   ```

## Paso 7: limpiar
<a name="sample-nodejs-clean-up"></a>

Para evitar que se hagan cargos continuos a tu AWS cuenta una vez que hayas terminado de usar este ejemplo, debes eliminar el entorno. Para obtener instrucciones, consulte [Eliminar un entorno en AWS Cloud9](delete-environment.md).