DougGoncalves / trabalhoServerless

Projeto referente a disciplina de Serverless Architecture, do MBA da FIAP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AWS SAM - Serverless Architecture

Projeto   |    Requisitos    |    Como executar ?      

💻 Projeto

Essa é uma aplicação construída utilizando o ambiente serverless da AWS usando AWS SAM, Amazon API Gateway, AWS Lambda and Amazon DynamoDB. Também utiliza a estrutura ORM do DynamoDBMapper para mapear os items TRIP em uma tabela DynamoDB para uma API RESTfull.

🚀 Requisitos

⚙️ Como executar ?

Instalar dependências

Nós utilizamos o MAVEN para gerenciar as dependências e para criação do JAR:

mvn install

Rodando localmente

  1. Rode o DynamoDB localmente em um container Docker. docker run -p 8000:8000 -v $(pwd)/local/dynamodb:/data/ amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -dbPath /data
  2. Crie a table do DynamoDB. aws dynamodb create-table --table-name trip --attribute-definitions AttributeName=topic,AttributeType=S AttributeName=dateTimeCreation,AttributeType=S AttributeName=tag,AttributeType=S AttributeName=consumed,AttributeType=S --key-schema AttributeName=topic,KeyType=HASH AttributeName=dateTimeCreation,KeyType=RANGE --local-secondary-indexes 'IndexName=tagIndex,KeySchema=[{AttributeName=topic,KeyType=HASH},{AttributeName=tag,KeyType=RANGE}],Projection={ProjectionType=ALL}' 'IndexName=consumedIndex,KeySchema=[{AttributeName=topic,KeyType=HASH},{AttributeName=consumed,KeyType=RANGE}],Projection={ProjectionType=ALL}' --billing-mode PAY_PER_REQUEST --endpoint-url http://localhost:8000

Caso a table já exista, você pode deletá-la: aws dynamodb delete-table --table-name trip --endpoint-url http://localhost:8000

  1. Inicie a API local do SAM.
  • 🍎 Mac: sam local start-api --env-vars src/test/resources/test_environment_mac.json
  • 🪟 Windows: sam local start-api --env-vars src/test/resources/test_environment_windows.json
  • 🐧 Linux: sam local start-api --env-vars src/test/resources/test_environment_linux.json

OBS: Se você já possui o container localmente em sua máquina, você pode pular o processo de download pelo comando --skip-pull-image

Se o comando anterior rodou, você agora consegue acessar o endpoint localmente.


Code and coffee ☕

About

Projeto referente a disciplina de Serverless Architecture, do MBA da FIAP


Languages

Language:Java 100.0%