

O AWS SDK para JavaScript v2 chegou ao fim do suporte. Recomendamos migrar para o [AWS SDK para JavaScript v3](https://docs.aws.amazon.com//sdk-for-javascript/v3/developer-guide/). Para ver detalhes e informações sobre como migrar, consulte este [anúncio](https://aws.amazon.com/blogs//developer/announcing-end-of-support-for-aws-sdk-for-javascript-v2/).

# Conceitos básicos de Node.js
<a name="getting-started-nodejs"></a>

![\[JavaScript code example that applies to Node.js execution\]](http://docs.aws.amazon.com/pt_br/sdk-for-javascript/v2/developer-guide/images/nodeicon.png)

**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
<a name="getting-started-nodejs-scenario"></a>

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
<a name="getting-started-nodejs-prerequisites"></a>

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:\$1Arquivos de Programas".
+ Instale o Node.js. Para obter mais informações, consulte o website [Node.js](https://nodejs.org). 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/](https://nodejs.org/en/download/current/).

**Contents**
+ [O cenário](#getting-started-nodejs-scenario)
+ [Tarefas de pré-requisito](#getting-started-nodejs-prerequisites)
+ [Etapa 1: Instalar o SDK e as dependências](#getting-started-nodejs-install-sdk)
+ [Etapa 2: Configurar as credenciais](#getting-started-nodejs-credentials)
+ [Etapa 3: Criar o JSON do pacote para o projeto](#getting-started-nodejs-download)
+ [Etapa 4: Escrever o código Node.js](#getting-started-nodejs-js-code)
+ [Etapa 5: Executar o exemplo](#getting-started-nodejs-run-sample)

## Etapa 1: Instalar o SDK e as dependências
<a name="getting-started-nodejs-install-sdk"></a>

Você instala o pacote SDK para JavaScript usando [npm (o gerenciador de pacotes Node.js)](https://www.npmjs.com). 

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](https://www.npmjs.com).

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](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](https://docs.npmjs.com/getting-started/installing-npm-packages-locally) (Fazer download e instalar pacotes localmente) e [Creating Node.js modules](https://docs.npmjs.com/getting-started/creating-node-modules) (Criar módulos Node.js) no [site do npm (gerenciador de pacotes Node.js)](https://www.npmjs.com). Para obter informações sobre como baixar e instalar o AWS SDK para JavaScript, consulte [Instalação do SDK for JavaScript](installing-jssdk.md).

## Etapa 2: Configurar as credenciais
<a name="getting-started-nodejs-credentials"></a>

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](getting-your-credentials.md).

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](loading-node-credentials-shared.md). 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
<a name="getting-started-nodejs-download"></a>

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](https://docs.npmjs.com/creating-a-package-json-file).

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/example_package.json). 

## Etapa 4: Escrever o código Node.js
<a name="getting-started-nodejs-js-code"></a>

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](https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javascript/example_code/nodegetstarted/sample.js).

## Etapa 5: Executar o exemplo
<a name="getting-started-nodejs-run-sample"></a>

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](https://console.aws.amazon.com/s3/).