Implantar uma aplicação Web no AWS Elastic Beanstalk

GUIA DE CONCEITOS BÁSICOS

Módulo 1: Criar uma aplicação Web

Neste módulo, vamos criar uma aplicação Web NodeJS e executá-la no local.

Introdução

Criaremos uma aplicação não conteinerizada que implantaremos na nuvem. Neste exemplo, usaremos o NodeJS para criar uma aplicação Web.

A aplicação será um servidor simples de aplicações Web que hospedará arquivos HTML estáticos e terá um endpoint da API REST. O foco deste guia não é ensinar a criar aplicações Web, então fique à vontade para usar a aplicação de exemplo ou crie uma por conta própria. Embora usemos o NodeJS neste guia, você também pode criar uma aplicação Web semelhante com outras linguagens de programação compatíveis com o Elastic Beanstalk, como Java, .NET, NodeJS, PHP, Ruby, Python, Go e Docker.

É possível realizar a implantação em um computador local ou em um ambiente do AWS Cloud9.

O que você aprenderá

  • Desenvolver uma aplicação Web NodeJS simples que hospeda um arquivo HTML e tem uma API REST simples
  • Executar a aplicação no local

 Tempo para a conclusão

10 minutos

 Pré-requisitos do módulo

  • Conta da AWS com acesso de administrador**
  • Navegador recomendado: versão mais recente do Chrome ou Firefox

[**]Talvez as contas criadas nas últimas 24 horas ainda não tenham acesso aos serviços necessários para este tutorial.

Implementação

Criar a aplicação cliente

Primeiro, crie um diretório para a aplicação.

mkdir my_webapp
cd my_webapp

Depois, inicialize o projeto do NodeJS. Essa ação criará o arquivo package.json com todas as definições da aplicação NodeJS.

npm init -y

Criar a aplicação Express

Você usará o Express como o framework da aplicação Web. Para usá-lo, instale-o como uma dependência no projeto do NodeJS.

npm install express

Depois que você executar o comando anterior, a dependência aparecerá no arquivo package.json. Além disso, o diretório node_modules e o arquivo package-lock.json serão criados.

Agora você já pode criar um arquivo chamado app.js. Ele conterá a lógica de negócios do servidor Express NodeJS de hospedagem.

Agora podemos começar a adicionar o código. Primeiro, precisamos adicionar as dependências da aplicação (nesse caso, o Express) para permitir o uso do módulo instalado anteriormente e adicionar o código para iniciar o servidor Web. Definiremos a porta 8080 para que ela seja usada pelo servidor Web, que é usada pelo Elastic Beanstalk por padrão.

var express = require('express');
var app = express();
var fs = require('fs');
var port = 8080;

app.listen(port, function() {
  console.log('Server running at http://127.0.0.1:', port);
});

Agora podemos iniciar a aplicação, mas ela ainda não fará nada, pois não definimos o código para processar solicitações.

Criar uma API REST

Agora adicionaremos o código para responder a uma chamada de API REST HTTP. Para criar a primeira chamada de API, adicione o código a seguir entre a definição da porta e o ponto de inicialização do servidor.

var express = require('express');
var app = express();
var fs = require('fs');
var port = 8080;

// New code
app.get('/test', function (req, res) {
    res.send('the REST endpoint test run!');
});


app.listen(port, function() {
  console.log('Server running at http://127.0.0.1:%s', port);
});

Esse exemplo serve para mostrar como conectar o endpoint /test ao código. Você pode adicionar outra resposta ou um código que faça algo específico, mas este guia não tratará disso.

Apresentar conteúdo HTML

A aplicação NodeJS Express também pode apresentar uma página Web estática. Precisamos criar uma página HTML para usá-la como exemplo. Vamos criar um arquivo chamado index.html.

No arquivo, adicione o HTML a seguir com um link para o endpoint REST criado anteriormente para mostrar como ele se conecta ao backend.

<html>
    <head>
        <title>Elastic Beanstalk App</title>
    </head>

    <body>
        <h1>Welcome to the demo for ElasticBeanstalk</h1>
        <a href="/test">Call the test API</a>
    </body>
</html>

Se quisermos gerar a página HTML pelo servidor Express, precisaremos adicionar o código para gerar o / path quando ele for chamado. Para fazer isso, adicione o seguinte código acima de /test call:

app.get('/', function (req, res) {
    html = fs.readFileSync('index.html');
    res.writeHead(200);
    res.write(html);
    res.end();
});

Esse código apresentará o arquivo index.html sempre que uma solicitação for feita à raiz da aplicação (/).

Executar o código no local

Agora podemos executar a aplicação e testar se ela está funcionando no local. Para fazer isso, atualizaremos package.json com um script para facilitar a execução. No arquivo package.json, substitua a seção scripts por:

"scripts": {
    "start": "node app.js"
  },

Agora você pode acessar o terminal e executar:

npm start

Esse comando iniciará um servidor local com o URL http://127.0.0.1:8080 ou http://localhost:8080.

Se você colar o URL no navegador, verá o seguinte:

gsg_build_elb_1

Para interromper o servidor, use ctrl + c e pare o processo no terminal em que você executou npm start

Conclusão

Neste primeiro módulo, criamos uma aplicação NodeJS muito básica e a executamos no local para garantir que ela funcione. No próximo módulo, aprenderemos a criar a infraestrutura usando o AWS CDK para executá-la no AWS Elastic Beanstalk.

A seguir: Criar a infraestrutura

Envie seus comentários.

Agradecemos por seus comentários
Ficamos satisfeitos por esta página ter ajudado você. Deseja compartilhar detalhes adicionais para nos ajudar a continuar melhorando?
Fechar
Agradecemos por seus comentários
Lamentamos que esta página não tenha ajudado você. Deseja compartilhar detalhes adicionais para nos ajudar a continuar melhorando?
Fechar