Introducción a Node.js - AWS SDK for JavaScript

Anunciamos el próximo fin del soporte para AWS SDK for JavaScript v2. Se recomienda que migre a AWS SDK for JavaScript v3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Introducción a Node.js

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo crear el manifiesto package.json para su proyecto.

  • Cómo instalar e incluir los módulos que su proyecto utiliza.

  • Cómo crear un objeto de servicio de Amazon Simple Storage Service (Amazon S3) a partir de la clase de cliente AWS.S3.

  • Cómo crear un bucket de Amazon S3 y cargar un objeto en dicho bucket.

El escenario

En el ejemplo se muestra cómo configurar y ejecutar un módulo de Node.js sencillo que crea un bucket de Amazon S3 y luego le añade un objeto de texto.

Dado que los nombres en Amazon S3 deben ser únicos a nivel global, este ejemplo incluye un módulo de Node.js de terceros que genera un valor de ID único que puede incorporar en el nombre de bucket. Este módulo adicional se llama uuid.

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar estas tareas:

  • Crear un directorio de trabajo para desarrollar su módulo Node.js. Llame awsnodesample a este directorio. Tenga en cuenta que el directorio se debe crear en una ubicación donde las aplicaciones lo puedan actualizar. Por ejemplo, en Windows, no cree el directorio en la sección "C:\Archivos de programa".

  • Instale Node.js. Para obtener más información, consulte el sitio web de Node.js. Puede encontrar descargas de las versiones LTS y actual de Node.js para una serie de sistemas operativos en https://nodejs.org/en/download/current/.

Paso 1: Instalar el SDK y las dependencias

El paquete del SDK para JavaScript se instala usando npm (el administrador de paquetes de Node.js).

En el directorio awsnodesample del paquete, escriba lo siguiente en la línea de comandos.

npm install aws-sdk

Este comando instala el SDK para JavaScript en su proyecto y actualiza package.json para incluir el SDK como dependencia de un proyecto. Puede encontrar información sobre este paquete buscando "aws-sdk" en el sitio web de npm.

A continuación, instale el módulo uuid en el proyecto escribiendo lo siguiente en la línea de comandos, para instalar el módulo y las actualizaciones package.json. Para obtener más información acerca de uuid, consulte la página del módulo en https://www.npmjs.com/package/uuid.

npm install uuid

Estos paquetes y su código asociado se instalan en el subdirectorio node_modules del proyecto.

Para obtener más información acerca de la instalación de paquetes Node.js, consulte las secciones sobre cómo descargar e instalar paquetes locales y cómo crear módulos Node.js en el sitio web de npm (administrador de paquetes de Node.js). Para obtener información acerca del cómo descargar e instalar el AWS SDK for JavaScript, consulte Instalación del SDK para JavaScript.

Paso 2: Configurar sus credenciales

Debe proporcionar credenciales para AWS, de modo que el SDK solo obtenga acceso a su cuenta y sus recursos. Para obtener más información sobre cómo obtener sus credenciales de cuenta, consulte Autenticación de SDK con AWS.

Para almacenar esta información, le recomendamos que cree un archivo de credenciales compartidas. Para saber cómo hacerlo, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas. Su archivo de credenciales debe parecerse al siguiente ejemplo.

[default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

Puede determinar si ha configurado las credenciales correctamente ejecutando el siguiente código con Node.js:

var AWS = require("aws-sdk"); AWS.config.getCredentials(function(err) { if (err) console.log(err.stack); // credentials not loaded else { console.log("Access key:", AWS.config.credentials.accessKeyId); } });

Del mismo modo, si ha definido la región correctamente en el archivo config, puede mostrar ese valor estableciendo la variable de entorno AWS_SDK_LOAD_CONFIG en cualquier valor y utilizando el siguiente código:

var AWS = require("aws-sdk"); console.log("Region: ", AWS.config.region);

Paso 3: Crear el JSON del paquete para el proyecto

Después de crear el directorio del proyecto awsnodesample, debe crear y añadir un archivo package.json para guardar los metadatos de su proyecto de Node.js. Para obtener información detallada acerca de cómo utilizar package.json en un proyecto Node.js, consulte la sección sobre creación de un archivo package.json.

En el directorio del proyecto, cree un archivo nuevo denominado package.json. Luego añada este JSON al archivo.

{ "dependencies": {}, "name": "aws-nodejs-sample", "description": "A simple Node.js application illustrating usage of the SDK for JavaScript.", "version": "1.0.1", "main": "sample.js", "devDependencies": {}, "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "NAME", "license": "ISC" }

Guarde el archivo. A medida que instale los módulos que necesita, la parte dependencies del archivo se completará. Puede encontrar un archivo JSON que muestra un ejemplo de estas dependencias aquí, en GitHub.

Paso 4: Escriba el código de Node.js

Cree un archivo nuevo denominado sample.js para que contenga el código de ejemplo. Para empezar, añada que las llamadas a la función require deben incluir el SDK para JavaScript y los módulos uuid, de modo que estén disponibles para que los use.

Cree un nombre de bucket único que se utilice para crear un bucket de Amazon S3 añadiendo un valor de ID único a un prefijo fácil de reconocer, en este caso 'node-sdk-sample-'. Puede generar el ID único llamando al módulo uuid. A continuación, cree un nombre para el parámetro Key utilizado para cargar un objeto en el bucket.

Cree un objeto promise para llamar al método createBucket del objeto de servicio AWS.S3. Si obtiene una respuesta correcta, cree los parámetros necesarios para cargar texto al bucket que acaba de crear. Usando otra promesa, llame al método putObject para cargar el objeto de texto en el bucket.

// Load the SDK and UUID var AWS = require("aws-sdk"); var uuid = require("uuid"); // Create unique bucket name var bucketName = "node-sdk-sample-" + uuid.v4(); // Create name for uploaded object key var keyName = "hello_world.txt"; // Create a promise on S3 service object var bucketPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .createBucket({ Bucket: bucketName }) .promise(); // Handle promise fulfilled/rejected states bucketPromise .then(function (data) { // Create params for putObject call var objectParams = { Bucket: bucketName, Key: keyName, Body: "Hello World!", }; // Create object upload promise var uploadPromise = new AWS.S3({ apiVersion: "2006-03-01" }) .putObject(objectParams) .promise(); uploadPromise.then(function (data) { console.log( "Successfully uploaded data to " + bucketName + "/" + keyName ); }); }) .catch(function (err) { console.error(err, err.stack); });

Este código de ejemplo se puede encontrar aquí en GitHub.

Paso 5: Ejecución de la muestra

Escriba el comando siguiente para ejecutar el ejemplo.

node sample.js

Si la carga se realiza correctamente, verá un mensaje de confirmación en la línea de comandos. También puede encontrar el bucket y el objeto de texto cargado en la consola de Amazon S3.