Projeto simples para testar conhecimentos do Curso de AWS Serverless com TypeScript e AWS Development Kit.
🚧 Em Desenvolvimento 🚧
- Desenvolver uma API simples que tenha as operações de:
- Cadastrar produtos
- Atualizar produtos
- Listagem de produtos
- Buscar produto por Id
- Deletar produtos
Descrição do fluxo:
- Através da API Gateway a request é recebida e validada
- Após isso, a API Gateway identifica o tipo da request e invoca a função Lambda responsável
- Caso seja uma listagem:
- Será invocado a função Produtos Fetch. Esta tem apenas permissões de leitura.
- Caso seja um cadastro, alteração ou deleção:
- Será invocado a função Produtos Admin. Esta tem permissões de alterações na base de dados.
- Em seguida também será disparado uma função para gravar eventos ocorridos em uma tabela específica.
- Caso seja uma listagem:
-
Para limpeza e centralização de código, foi criado uma layer apenas para as operações relaciondas a tabela de Produtos.
-
Esta solução foi adotada para reduzir o código das funções de Admin e Fetch. Permitindo implementar apenas o que interessa em cada função.
- Para manter o escopo mais simples do projeto, foi adotado o banco NoSQL DynamoDB.
- CloudWatch (para gravar logs em LogGroups)
- IAM (Controle de permissões)
- Certifique-se de estar com o CLI configurado corretamente e com as permissões necessárias para sua conta.
- Caso seja necessário, consulte em: Configuração da AWS CLI
- Instale o Docker Desktop (ou o Docker Engine caso não tenha permissão de instalar na máquina todos os recursos)
- Dentro da pasta bin, acesso o arquivo "e_commerce_aws.ts";
- Note que há variáveis para guardar o account e region da conta, preencha com as informações respectivas de sua conta.
- Feito o passo acima, certifique-se de estar rodando o Docker Desktop (ou o Docker Engine) e rode o comando "cdk deploy --all".
- O processo demora alguns minutos, mas ao ser concluído com sucesso irá criar todos os elementos necessários.
- Ao final do processamento, note que será retornado uma URL de Endpoint para acessar as rotas. Copie o valor devolvido.
- Em seguida, importe os arquivos para testar as rotas no Insomnia.
- Dentro de Environment, substitua o valor do base-URL com o valor da URL de Endpoint retornada no ponto 5.
Setup finalizado e pronto para teste: ✅