

 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.

# TypeScript tutorial para AWS Cloud9
<a name="sample-typescript"></a>

Este tutorial le muestra cómo trabajar con él TypeScript 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. Entre estos se incluyen posibles cargos por servicios como Amazon EC2 y Amazon S3. Para obtener más información, consulte [Precios de Amazon EC2](https://aws.amazon.com/ec2/pricing/) y [Precios de Amazon S3](https://aws.amazon.com/s3/pricing/).

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

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

Antes de utilizar este ejemplo, asegúrese de que su configuración cumpla los siguientes requisitos:
+ **Debe tener un entorno de desarrollo AWS Cloud9 EC2 existente.** En este ejemplo, se da por hecho que ya tiene un entorno de EC2 que está conectado a una instancia de Amazon EC2 que ejecuta Amazon Linux o Ubuntu Server. 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-typescript-install"></a>

En este paso, la instalación se TypeScript realiza mediante Node Package Manager (**`npm`**). Para instalar **`npm`**, use Node Version Manager (**`nvm`**). Si no tiene **`nvm`**, instálelo primero en este paso.

1. En una sesión de terminal en el AWS Cloud9 IDE, confirme si ya TypeScript está instalado ejecutando el TypeScript compilador de línea de comandos con la **`--version`**opción. (Para iniciar una nueva sesión del terminal, en la barra de menús, seleccione **Window [Ventana]**, **New Terminal [Nuevo terminal]**). Si se ejecuta correctamente, el resultado contiene el número de TypeScript versión. Si TypeScript está instalado, pase a[Paso 2: Agregar el código](#sample-typescript-code).

   ```
   tsc --version
   ```

1. Confirme si **`npm`** ya está instalado mediante la ejecución de **`npm`** con la opción **`--version`**. Si es así, el resultado contendrá el número de versión de **`npm`**. Si **`npm`**está instalado, vaya al paso 10 de este procedimiento **`npm`**para utilizarlo en la instalación TypeScript.

   ```
   npm --version
   ```

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 instalarlo **`npm`**, comience por ejecutar el siguiente 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 GitHub sitio web.)

   ```
   curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/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. Confirme que **`nvm`** está instalado mediante la ejecución de **`nvm`** con la opción **`--version`**.

   ```
   nvm --version
   ```

1. Instale la versión 16 más reciente de Node.js ejecutando **`nvm`**. (**`npm`** se incluye en Node.js).

   ```
   nvm install v16
   ```

1. Confirme que Node.js está instalado ejecutando la versión de la línea de comandos de Node.js con la opción **`--version`**.

   ```
   node --version
   ```

1. Confirme que **`npm`** está instalado mediante la ejecución de **`npm`** con la opción **`--version`**.

   ```
   npm --version
   ```

1. Instálelo TypeScript **`npm`**ejecutándolo con la **`-g`**opción. Se instala TypeScript como un paquete global en el entorno.

   ```
   npm install -g typescript
   ```

1. Confirme que TypeScript está instalado ejecutando el TypeScript compilador de línea de comandos con la **`--version`**opción.

   ```
   tsc --version
   ```

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

1. En el AWS Cloud9 IDE, cree un archivo con el nombre`hello.ts`. (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]).

1. En un terminal del IDE, desde el mismo directorio que el archivo `hello.ts`, ejecute ** `npm` ** para instalar la biblioteca `@types/node`.

   ```
   npm install @types/node
   ```

   De este modo se añade una carpeta `node_modules/@types/node` en el mismo directorio que el archivo `hello.ts`. Esta nueva carpeta contiene las definiciones del tipo Node.js TypeScript que se necesitarán más adelante en este procedimiento para las `console.log` `process.argv` propiedades que va a añadir al `hello.ts` archivo.

1. Añada el siguiente código al archivo `hello.ts`:

   ```
   console.log('Hello, World!');
   
   console.log('The sum of 2 and 3 is 5.');
   
   const sum: number = 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-typescript-run"></a>

1. En la terminal, desde el mismo directorio que el `hello.ts` archivo, ejecute el TypeScript compilador. Especifique el archivo `hello.ts` y las bibliotecas adicionales que se incluirán.

   ```
   tsc hello.ts --lib es6
   ```

   TypeScript usa el `hello.ts` archivo y un conjunto de ECMAScript 6 (ES6) archivos de biblioteca para transpilar el TypeScript código del `hello.ts` archivo en un JavaScript código equivalente en un archivo denominado. `hello.js`

1. En la ventana **Environment (Entorno)**, abra el archivo `hello.js`.

1. En la barra de menú, elija **Run** (Ejecutar), **Run Configurations** (Configuraciones de ejecución), **New Run Configuration** (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 **Run (Ejecutar)** y compare los resultados. Cuando haya terminado, elija **Stop (Detener)**.

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

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


**nota**  
En lugar de crear una nueva configuración de ejecución en el IDE, también puede ejecutar este código si ejecuta el comando ** `node hello.js 5 9` ** desde el terminal.

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

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 AWS SDK para JavaScript Node.js. El SDK proporciona una forma cómoda de interactuar con AWS servicios como Amazon S3 desde el JavaScript código. Tras instalar el AWS SDK JavaScript en Node.js, debe configurar la administración de credenciales en su entorno. El SDK necesita estas credenciales para interactuar con AWS los servicios.

### Para instalar el AWS SDK JavaScript en Node.js
<a name="sample-typescript-sdk-install-sdk"></a>

En una sesión de terminal en el AWS Cloud9 IDE, desde el mismo directorio del que `hello.js` proviene el archivo[Paso 3: Ejecutar el código](#sample-typescript-run), ejecute **`npm`**para instalar el AWS SDK JavaScript en Node.js.

```
npm install aws-sdk
```

Este comando agrega varias carpetas a la carpeta `node_modules` del [Paso 3: Ejecutar el código](#sample-typescript-run). Estas carpetas contienen el código fuente y las dependencias del AWS SDK JavaScript de Node.js. 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
<a name="sample-typescript-sdk-creds"></a>

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/v3/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-typescript-sdk-code"></a>

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.

1. En el AWS Cloud9 IDE, en el mismo directorio que el `hello.js` archivo de los pasos anteriores, cree un archivo con el nombre`s3.ts`.

1. Desde un terminal del AWS Cloud9 IDE, en el mismo directorio que el `s3.ts` archivo, habilite el código para llamar a las operaciones de Amazon S3 de forma asíncrona ejecutándolo **`npm`**dos veces para instalar la biblioteca asíncrona y otra vez para. TypeScript JavaScript

   ```
   npm install @types/async # For TypeScript.
   npm install async        # For JavaScript.
   ```

1. Añada el siguiente código al archivo `s3.ts`:

   ```
   import * as async from 'async';
   import * as AWS from 'aws-sdk';
   
   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);
   }
   
   const AWS = require('aws-sdk'); // To set the AWS credentials and AWS Region.
   const async = require('async'); // To call AWS operations asynchronously.
   
   const s3: AWS.S3 = new AWS.S3({apiVersion: '2006-03-01'});
   const bucket_name: string = process.argv[2];
   const region: string = process.argv[3];
   
   AWS.config.update({
     region: region
   });
   
   const create_bucket_params: any = {
     Bucket: bucket_name,
     CreateBucketConfiguration: {
       LocationConstraint: region
     }
   };
   
   const delete_bucket_params: any = {
     Bucket: bucket_name
   };
   
   // List all of your available buckets in this AWS Region.
   function listMyBuckets(callback): void {
     s3.listBuckets(function(err, data) {
       if (err) {
   
       } else {
         console.log("My buckets now are:\n");
   
         for (let i: number = 0; i < data.Buckets.length; i++) {
           console.log(data.Buckets[i].Name);
         }
       }
   
       callback(err);
     });
   }
   
   // Create a bucket in this AWS Region.
   function createMyBucket(callback): void {
     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): void {
     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 del SDK AWS
<a name="sample-typescript-sdk-run"></a>

1. En la terminal, desde el mismo directorio que el `s3.ts` archivo, ejecuta el TypeScript compilador. Especifique el archivo `s3.ts` y las bibliotecas adicionales que se incluirán.

   ```
   tsc s3.ts --lib es6
   ```

   TypeScript usa el `s3.ts` archivo, el AWS SDK para JavaScript Node.js, la biblioteca asíncrona y un conjunto de ECMAScript 6 (ES6) archivos de biblioteca para transpilar el TypeScript código del archivo en JavaScript código equivalente en un `s3.ts` archivo denominado. `s3.js`

1. En la ventana **Environment (Entorno)**, abra el archivo `s3.js`.

1. En la barra de menú, elija **Run** (Ejecutar), **Run Configurations** (Configuraciones de ejecución), **New Run Configuration** (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**, escriba`s3.js YOUR_BUCKET_NAME THE_AWS_REGION `, where ` YOUR_BUCKET_NAME ` es el nombre del bucket que desea crear y, a continuación, eliminar, y ` THE_AWS_REGION ` es el ID de la AWS región en la que se va a crear el bucket. Por ejemplo, para la región EE.UU. Este (Ohio), utilice `us-east-2`. 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 **Run (Ejecutar)** y compare los resultados. Cuando haya terminado, elija **Stop (Detener)**.

   ```
   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-typescript-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).