Cryptocurrency Prices
Overview
A ideia deste projeto é aplicar o conteúdo estudado sobre AWS Lambda. Ele implementa uma funcionalidade simples, consultar a cotação de uma quantidade determinada de criptomoedas, e enviar os dados processados para uma API.
Instalação
Repositório
Para clonar o repositório usando a linha de comando, execute:
> git clone https://github.com/gustavofreze/cryptocurrency-prices.git
Configuração
É necessário configurar as variáveis de ambiente, para todos os ambientes que você for executar. Isso pode ser feito definindo os respectivos valores em configs.
A consulta de cotações é feita usando esta API. Crie uma conta para obter uma chave de autenticação. A chave deve ser colocada na propriedade PRICE_KEY
do arquivo de configuração.
A notificação é feita usando esse Webhook, basta copiar a url e adicioná-la a propriedade NOTIFICATION_URL
do arquivo de configuração.
Para executar a consulta, processamento e envio dos preços, você pode executar em ambiente local, o seguinte comando:
> make run
CI/CD
O processo de integração e entrega contínua, definido nessa pipeline, automatiza o processo de implantação da lamba em ambientes diferentes.
Para realizar o deploy, será necessário ter uma conta na AWS, e obter as chaves de acesso no IAM, Access key ID
e Secret access key
. Seu usuário precisa de permissões para o S3, Cloud Watch Logs, Cloud Formation e Lambda.
Com as devidas permissões atribuídas, e com suas chaves de acesso, defina no repositório suas Actions secrets, levando em consideração seu environment.
O action será executado nas operações de push para as branches main
e release/**
, onde eu defini que main
possui o environment production
, enquanto release/**
possui o environment staging
.
Roadmap
Depois que o processo de CI/CD foi finalizado, e a lambda foi implantada na AWS, basta acessar o console e executar a chamada do lambda com um evento de teste.
Resultado da chamada do evento de teste.
Após a chamada do evento de teste, verifique os dados enviados para o webhook que você definiu anteriormente.
Testes
Executar testes em ambiente local.
-
Executa todos os testes:
> make test