Conceitos básicos de Node.js - AWS SDK for JavaScript

Anunciamos o próximo fim do suporte para o AWS SDK for JavaScript v2. Recomendamos migrar para o AWS SDK for JavaScript v3. Para saber as datas e receber detalhes adicionais e informações sobre como migrar, consulte o anúncio vinculado.

Conceitos básicos de Node.js

JavaScript code example that applies to Node.js execution

Este exemplo de código Node.js mostra:

  • Como criar o manifesto package.json para o projeto.

  • Como instalar e incluir os módulos usados pelo projeto.

  • Como criar um objeto de serviço Amazon Simple Storage Service (Amazon S3) da classe de cliente AWS.S3.

  • Como criar um bucket do Amazon S3 e fazer upload de um objeto para esse bucket.

O cenário

O exemplo mostra como configurar e executar um módulo Node.js simples que cria um bucket do Amazon S3 e adiciona um objeto de texto a ele.

Como nomes de bucket no Amazon S3 devem ser exclusivos globalmente, este exemplo inclui um módulo Node.js de terceiros que gera um valor de ID exclusivo que você pode incorporar ao nome do bucket. Este módulo adicional se chama uuid.

Tarefas de pré-requisito

Para configurar e executar este exemplo, você deve primeiro concluir estas tarefas:

  • Crie um diretório de trabalho para desenvolver o módulo Node.js. Nomeie este diretório awsnodesample. Observe que o diretório deve ser criado em um local que possa ser atualizado por aplicativos. Por exemplo, no Windows, não crie o diretório em "C:\Arquivos de Programas".

  • Instale o Node.js. Para obter mais informações, consulte o website Node.js. Você pode encontrar downloads das versões atuais e LTS do Node.js para uma grande variedade de sistemas operacionais em https://nodejs.org/en/download/current/.

Etapa 1: Instalar o SDK e as dependências

Você instala o pacote SDK para JavaScript usando npm (o gerenciador de pacotes Node.js).

No diretório awsnodesample no pacote, digite o seguinte na linha de comando.

npm install aws-sdk

Esse comando instala o SDK para JavaScript no projeto e atualiza package.json para listar o SDK como uma dependência de projeto. Você pode encontrar informações sobre esse pacote procurando "aws-sdk" no site do npm.

Instale o módulo uuid no projeto digitando o seguinte na linha de comando, que instala o módulo e atualiza package.json. Para obter mais informações sobre uuid, consulte a página do módulo em https://www.npmjs.com/package/uuid.

npm install uuid

Esses pacotes e os códigos associados são instalados no subdiretório node_modules do projeto.

Para obter mais informações sobre como instalar pacotes Node.js, consulte Downloading and installing packages locally (Fazer download e instalar pacotes localmente) e Creating Node.js modules (Criar módulos Node.js) no site do npm (gerenciador de pacotes Node.js). Para obter informações sobre como baixar e instalar o AWS SDK for JavaScript, consulte Instalação do SDK for JavaScript.

Etapa 2: Configurar as credenciais

Você precisa fornecer credenciais para a AWS, de maneira que apenas a sua conta e os seus recursos sejam acessados pelo SDK. Para obter mais informações sobre como obter as credenciais da conta, consulte Autenticação do SDK com AWS.

Para armazenar essas informações, recomendamos criar um arquivo de credenciais compartilhadas. Para saber como, consulte Carregar credenciais em Node.js do arquivo de credenciais compartilhado. O arquivo de credenciais deve ser semelhante ao exemplo a seguir.

[default] aws_access_key_id = YOUR_ACCESS_KEY_ID aws_secret_access_key = YOUR_SECRET_ACCESS_KEY

É possível determinar se você definiu as credenciais corretamente executando o seguinte código com 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); } });

Da mesma maneira, se você tiver definido a região corretamente no arquivo config, poderá exibir esse valor definindo a variável de ambiente AWS_SDK_LOAD_CONFIG como qualquer valor e usando o seguinte código:

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

Etapa 3: Criar o JSON do pacote para o projeto

Depois de criar o diretório do projeto awsnodesample, você vai criar e adicionar um arquivo package.json para manter os metadados do seu projeto Node.js. Para obter detalhes sobre como usar o package.json em um projeto Node.js, consulte Como criar im arquivo package.json.

No diretório de projeto, crie um novo arquivo chamado package.json. Adicione esse JSON ao arquivo.

{ "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" }

Salve o arquivo. À medida que você instalar os módulos de que você precisar, a parte dependencies do arquivo será concluída. Você pode encontrar um arquivo JSON que mostra um exemplo dessas dependências aqui no GitHub.

Etapa 4: Escrever o código Node.js

Crie um novo arquivo chamado sample.js para conter o código de exemplo. Comece adicionando as chamadas de função require para incluir o SDK para JavaScript e os módulos uuid para que eles estejam disponíveis para uso.

Crie um nome do bucket exclusivo que será usado para criar um bucket do Amazon S3 anexando um valor de ID exclusivo a um prefixo reconhecível, neste caso 'node-sdk-sample-'. Você gera o ID exclusivo chamando o módulo uuid. Crie um nome para o parâmetro Key usado para fazer upload de um objeto no bucket.

Crie um objeto promise para chamar o método createBucket do objeto de serviço AWS.S3. Em uma resposta bem-sucedida, crie os parâmetros necessários para fazer upload de texto no bucket recém-criado. Usando outra promessa, chame o método putObject para fazer upload do objeto de texto no 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 exemplo pode ser encontrado aqui no GitHub.

Etapa 5: Executar o exemplo

Digite o seguinte comando para executar o exemplo.

node sample.js

Se o upload for bem-sucedido, você verá uma mensagem de confirmação na linha de comando. Você também pode encontrar o bucket e o objeto de texto carregado no console do Amazon S3.