Amostra Node.js para o AWS Cloud9 - AWS Cloud9

Amostra Node.js para o AWS Cloud9

Este exemplo permite executar alguns scripts Node.js em um ambiente de desenvolvimento do AWS Cloud9.

A criação deste exemplo pode gerar cobranças em sua conta da AWS. Isso inclui possíveis cobranças por serviços como o Amazon EC2 e Amazon S3. Para obter mais informações, consulte Definição de preço do Amazon EC2 e Definição de preço do Amazon S3.

Prerequisites

Antes de usar essa amostra, verifique se suas configurações cumprem os requisitos a seguir.

  • É necessário ter um ambiente de desenvolvimento existente do EC2 para o AWS Cloud9. Este exemplo pressupõe que você já tem um ambiente EC2 conectado a uma instância do Amazon EC2, executado no Amazon Linux ou Ubuntu Server. Caso tenha um tipo diferente de ambiente ou sistema operacional, poderá ser necessário adaptar as instruções desse exemplo para configurar ferramentas relacionadas. Para mais detalhes, consulte Criar um ambiente no AWS Cloud9.

  • O IDE do AWS Cloud9 para o ambiente existente já está aberto. Ao abrir um ambiente o AWS Cloud9 abre o IDE para esse ambiente em um navegador da Web. Para mais detalhes, consulte Abrir um ambiente no AWS Cloud9.

Etapa 1: Instalar as ferramentas necessárias

Nesta etapa, instale o Node.js, necessário para executar esse exemplo.

  1. Em uma sessão de terminal no IDE do AWS Cloud9, confirme se o Node.js já está instalado, executando o comando node --version . (Para iniciar uma nova sessão de terminal, na barra de menus, selecione Window (Janela), New Terminal (Novo terminal).) Se sim, a saída contém o número da versão da Node.js. Se o Node.js estiver instalado, avance para Etapa 2: Adicionar código.

  2. Execute o comando yum update para Amazon Linux ou o comando apt update para Ubuntu Server a fim de ajudar a garantir que as atualizações de segurança e correções de bug mais recentes sejam instaladas.

    Para Amazon Linux:

    sudo yum -y update

    Para Ubuntu Server:

    sudo apt update
  3. Para instalar o Node.js, comece executando o comando a seguir para baixar o Gerenciador de versão do Node (nvm). (nvm é um script de shell Bash simples e útil para instalar e gerenciar versões do Node.js. Para obter mais informações, consulte Node Version Manager (Gerenciador de versões do Node) no site do GitHub).

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
  4. Para começar a usar o nvm, feche a sessão de terminal e inicie-a novamente ou extraia o arquivo ~/.bashrc que contém os comandos para carregar o nvm.

    . ~/.bashrc
  5. Execute esse comando para instalar a versão mais recente do Node.js.

    nvm install node

Etapa 2: Adicionar código

No IDE do AWS Cloud9, crie um arquivo com esse conteúdo e salve-o com o nome hello.js. (Para criar um arquivo, na barra de menus, selecione File (Arquivo), New File (Novo arquivo). Para salvar o arquivo, selecione File (Arquivo), Save (Salvar).)

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 + '.');

Etapa 3: Executar o código

  1. No IDE do AWS Cloud9, na barra de menus, selecione Run (Executar), Run Configurations (Configurações de execução), New Run Configuration (Nova configuração de execução).

  2. Na guia [New] - Idle ([Novo] – Inativo), selecione Runner: Auto (Executor: automático) e, em seguida, selecione Node.js.

  3. Em Command (Comando), digite hello.js 5 9. No código, 5 representa process.argv[2], e 9 representa process.argv[3]. (process.argv[0] representa o nome do tempo de execução (node) e process.argv[1] representa o nome do arquivo (hello.js).)

  4. Selecione o botão Run (Executar) e compare a sua saída.

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

            Saída do Node.js após a execução do código no IDE do AWS Cloud9

Etapa 4: Instalar e configurar o AWS SDK for JavaScript in Node.js

Ao executar scripts Node.js no AWS Cloud9, você pode escolher entre AWS SDK for JavaScript versão 3 (V3) e a versão mais antiga do AWS SDK for JavaScript versão 2 (V2). Assim como com o V2, o V3 permite que você trabalhe facilmente com a Amazon Web Services, mas foi escrito em TypeScript e adiciona vários recursos solicitados com frequência, como pacotes modularizados.

AWS SDK for JavaScript (V3)

Você pode aprimorar este exemplo para usar o AWS SDK for JavaScript in Node.js para criar um bucket do Amazon S3, listar os buckets disponíveis e excluir o bucket que acabou de criar.

Nesta etapa, instale e configure o módulo do cliente do serviço Amazon S3 do AWS SDK for JavaScript in Node.js, que fornece uma forma prática de interagir com o serviço da AWS, Amazon S3, no código do JavaScript.

Se você quiser usar outros serviços da AWS, você precisará instalá-los separadamente. Para obter mais informações sobre como instalar os módulos da AWS, consulte o Manual do desenvolvedor (V3) da AWS.

Depois de instalar o AWS SDK for JavaScript in Node.js, você deverá configurar o gerenciamento de credenciais no ambiente. O AWS SDK for JavaScript in Node.js precisa dessas credenciais para interagir com os serviços da AWS.

Para instalar o AWS SDK for JavaScript in Node.js

Use o npm para executar o comando install .

npm install @aws-sdk/client-s3

Para obter mais informações, consulte Instalar o SDK for JavaScript no Manual do desenvolvedor do AWS SDK for JavaScript.

Para configurar o gerenciamento de credenciais no ambiente

Toda vez que você usar o AWS SDK for JavaScript in Node.js para chamar um serviço da AWS, forneça um conjunto de credenciais com a chamada. Essas credenciais determinam se o AWS SDK for JavaScript in Node.js tem as permissões apropriadas para fazer a chamada. Se as credenciais não cobrirem as permissões apropriadas, a chamada falhará.

Nesta etapa, você armazenará as credenciais no ambiente. Para fazer isso, siga as instruções em Chamar serviços da AWS em um ambiente no AWS Cloud9 e retorne a este tópico.

Para obter mais informações, consulte Setting Credentials in Node.js (Definir credenciais no Node.js) no Manual do desenvolvedor do AWS SDK for JavaScript.

AWS SDK for JavaScript (V2)

Você pode aprimorar este exemplo para usar o AWS SDK for JavaScript in Node.js para criar um bucket do Amazon S3, listar os buckets disponíveis e excluir o bucket que acabou de criar.

Nesta etapa, instale e configure o AWS SDK for JavaScript in Node.js, que fornece uma forma prática de interagir com os serviços da AWS, como o Amazon S3, no código do JavaScript. Depois de instalar o AWS SDK for JavaScript in Node.js, você deverá configurar o gerenciamento de credenciais no ambiente. O AWS SDK for JavaScript in Node.js precisa dessas credenciais para interagir com os serviços da AWS.

Para instalar o AWS SDK for JavaScript in Node.js

Use o npm para executar o comando install .

npm install aws-sdk

Para obter mais informações, consulte Instalar o SDK for JavaScript no Manual do desenvolvedor do AWS SDK for JavaScript.

Para configurar o gerenciamento de credenciais no ambiente

Toda vez que você usar o AWS SDK for JavaScript in Node.js para chamar um serviço da AWS, forneça um conjunto de credenciais com a chamada. Essas credenciais determinam se o AWS SDK for JavaScript in Node.js tem as permissões apropriadas para fazer a chamada. Se as credenciais não cobrirem as permissões apropriadas, a chamada falhará.

Nesta etapa, você armazenará as credenciais no ambiente. Para fazer isso, siga as instruções em Chamar serviços da AWS em um ambiente no AWS Cloud9 e retorne a este tópico.

Para obter mais informações, consulte Setting Credentials in Node.js (Definir credenciais no Node.js) no Manual do desenvolvedor do AWS SDK for JavaScript.

Etapa 5: Adicionar código do SDK da AWS

AWS SDK for JavaScript (V3)

Nesta etapa, adicione mais código, dessa vez para interagir com o Amazon S3 para criar um bucket, listar os buckets disponíveis e, excluir o bucket que você acabou de criar. Esse código será executado mais tarde.

No IDE do AWS Cloud9, crie um arquivo com esse conteúdo e salve-o com o nome 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); } import { ListBucketsCommand, CreateBucketCommand, DeleteBucketCommand} from "@aws-sdk/client-s3"; import {s3Client} from "./libs/s3Client" // Helper function that creates Amazon S3 service client module. const async = require("async"); // To call AWS operations asynchronously. const bucket_name = process.argv[2]; const region = process.argv[3]; const create_bucket_params = { Bucket: bucket_name, CreateBucketConfiguration: { LocationConstraint: region, }, }; export const delete_bucket_params = { Bucket: bucket_name }; // List all of your available buckets in this AWS Region. export const run = async () => { try { const data = await s3Client.send(new ListBucketsCommand({})); return data; // For unit tests. console.log("My buckets now are:\n"); for (var i = 0; i < data.Buckets.length; i++) { console.log(data.Buckets[i].Name); } } catch (err) { console.log("Error", err); } try { console.log("\nCreating a bucket named " + bucket_name + "...\n"); const data = await s3Client.send(new CreateBucketCommand(create_bucket_params)); return data; // For unit tests. console.log("My buckets now are:\n"); for (var i = 0; i < data.Buckets.length; i++) { console.log(data.Buckets[i].Name); } } catch (err) { console.log(err.code + ": " + err.message); } try { console.log("\nDeleting the bucket named " + bucket_name + "...\n"); const data = await s3Client.send(new DeleteBucketCommand(delete_bucket_params)); return data; // For unit tests. } catch (err) { console.log(err.code + ": " + err.message); } }; run();
AWS SDK for JavaScript (V2)

Nesta etapa, adicione mais código, dessa vez para interagir com o Amazon S3 para criar um bucket, listar os buckets disponíveis e, excluir o bucket que você acabou de criar. Esse código será executado mais tarde.

No IDE do AWS Cloud9, crie um arquivo com esse conteúdo e salve-o com o nome 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 ]);

Etapa 6: Executar o código SDK da AWS

  1. Habilite o código para chamar operações do Amazon S3 de forma assíncrona usando o npm para executar o comando install .

    npm install async
  2. No IDE do AWS Cloud9, na barra de menus, selecione Run (Executar), Run Configurations (Configurações de execução), New Run Configuration (Nova configuração de execução).

  3. Na guia [New] - Idle ([Novo] – Inativo), selecione Runner: Auto (Executor: automático) e, em seguida, selecione Node.js.

  4. Em Command (Comando), digite s3.js my-test-bucket us-east-2, em que my-test-bucket é o nome do bucket que você deseja criar e excluir, e us-east-2 é o ID da região da AWS em que deseja criar o bucket. Para obter mais IDs, consulte Amazon Simple Storage Service (Amazon S3) no Amazon Web Services General Reference (Referência geral do Amazon Web Services).

    nota

    Os nomes de buckets do Amazon S3 devem ser exclusivos em toda a AWS, e não apenas na sua conta da AWS.

  5. Selecione o botão Run (Executar) e compare a sua saída.

    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:

Etapa 7: Limpeza

Para evitar cobranças contínuas em sua conta da AWS, ao terminar de usar este exemplo, exclua o ambiente. Para obter instruções, consulte Excluir um ambiente no AWS Cloud9.