
Desenvolvimento de Aplicações Serverless com AWS Lambda e Node.js
O paradigma serverless revolucionou a forma como desenvolvemos e implantamos aplicativos, permitindo que os desenvolvedores se concentrem no código, enquanto a infraestrutura é gerenciada automaticamente. Neste guia, exploraremos o desenvolvimento de aplicações serverless utilizando AWS Lambda e Node.js.
1. Configuração Inicial:
Antes de começar, certifique-se de ter uma conta AWS configurada. Em seguida, instale o AWS CLI e configure suas credenciais.
# Instalação do AWS CLI via npm
npm install -g aws-cli
# Configuração das credenciais
aws configure
2. Criando uma Função Lambda:
Vamos criar uma função Lambda simples que responde a uma requisição HTTP. Crie um arquivo chamado index.js:
// index.js
exports.handler = async (event) => {
const resposta = {
statusCode: 200,
body: JSON.stringify('Olá, mundo!'),
};
return resposta;
};
3. Empacotando e Enviando a Função:
Empacote a função e a biblioteca necessária (se houver) em um arquivo ZIP:
# Criação do arquivo ZIP
zip -r function.zip index.js node_modules/
Em seguida, crie a função Lambda:
bash
Copy code
# Criação da função Lambda
aws lambda create-function \
--function-name MinhaFuncao \
--runtime nodejs14.x \
--role arn:aws:iam::SEU_ID_DE_CONTA:role/NOME_DA_ROLE \
--handler index.handler \
--zip-file fileb://function.zip
4. Configurando o Gatilho API Gateway:
Vamos criar um ponto de extremidade HTTP para nossa função Lambda usando o Amazon API Gateway.
# Criando a API Gateway
aws apigateway create-rest-api --name MinhaAPI
# Obtendo o ID da API
API_ID=$(aws apigateway get-rest-apis --query "items[0].id" --output text)
# Criando um recurso
aws apigateway create-resource --rest-api-id $API_ID --parent-id $API_ID --path-part MinhaRecurso
# Obtendo o ID do recurso
RESOURCE_ID=$(aws apigateway get-resources --rest-api-id $API_ID --query "items[0].id" --output text)
# Criando o método POST
aws apigateway put-method --rest-api-id $API_ID --resource-id $RESOURCE_ID --http-method POST --authorization-type NONE
# Integrando com a função Lambda
aws apigateway put-integration \
--rest-api-id $API_ID \
--resource-id $RESOURCE_ID \
--http-method POST \
--type AWS_PROXY \
--integration-http-method POST \
--uri arn:aws:apigateway:REGIAO:lambda:path/2015-03-31/functions/ARN_DA_FUNCAO/invocations
# Publicando a API
aws apigateway create-deployment --rest-api-id $API_ID --stage-name producao
Agora, você pode encontrar o URL de invocação na saída do comando aws apigateway create-deployment. Ele será algo como https://SEU_ID_DE_API.execute-api.REGION.amazonaws.com/producao/MinhaRecurso.
5. Testando a Aplicação:
Use um cliente HTTP, como cURL ou Postman, para enviar uma requisição POST para o endpoint criado.
curl -X POST https://SEU_ID_DE_API.execute-api.REGION.amazonaws.com/producao/MinhaRecurso
Você deve receber a resposta “Olá, mundo!”.
Conclusão:
O desenvolvimento de aplicações serverless com AWS Lambda e Node.js simplifica a infraestrutura, permitindo que os desenvolvedores foquem no código. Este guia abrange uma aplicação básica, mas o AWS Lambda oferece suporte a uma variedade de eventos, bibliotecas e integrações, permitindo que você construa aplicações serverless robustas e escaláveis. Explore a documentação da AWS para aprender mais sobre as possibilidades e melhores práticas.