AWS Lambda - GraphQL-DynamoDB

Sobre

Este projeto tem como objetivo a utilização de GraphQL integrado com o banco de dados DynamoDB. A implementação foi dividia em quatro partes, sendo a implementação final contida na pasta graphql-dynamodb-pt4
Três padrões de projeto foram utilizados e eles são:

  • Repository
  • Factory
  • Dependency Injection

As ferramentas utilizadas para o desenvolvimento são:

  • localstack: Emula o ambiente de execução de lambda functions da AWS localmente
  • serverless-offline: Plugin serverless que permite a execução de lambda functions localmente, em conjunto com o localstack de forma rápida.
  • serverless-dynamodb-local: Plugin serverless que permite o uso local do DynamoDB, em conjunto com o localstack
  • dynamoose: ORM para uso do DynamoDB
  • apollo-server-lambda: Server GraphQL para ambientes aws lambda

Execuçao do projeto

Localstack

Para a execução local do projeto, é obrigatória a execução do localstack. Para inicializá-lo, na pasta raiz do projeto, usaremos o docker compose

docker-compose up -d localstack

Yarn

Uma vez que o container esteja executando:

  • Instale as dependências do projeto
yarn install
  • Startup do projeto
yarn start

Implantação

AWS

Antes de realizar o deploy na AWS, verifique as configurações da região e perfil utilizados na AWS no arquivo serverless.yml, dentro da propriedade provider

  • Deploy do projeto
sls deploy
  • Remoção do deploy
sls remove