Este projeto é apenas um caso de estudo de como simular o ambiente da aws localmente, integrando serverless-offline com python.
- Docker
- Aws Cli
Abaixo temos toda a comunicação dos recursos contidos neste projeto.
Dentro da pasta infra
execute o comando abaixo para montar os containers com o docker-compose.
$ docker-compose -f aws-localstack.yaml --env-file ../.env up -d
NOTA: Se estiver executando em uma máquina com distribuição linux você deve alterar o hostname no arquivo .env de
host.docker.internal
paralocalhost
.
Se for a primeira vez que vai executar basta rodar o comando abaixo para que ele gere o build da imagem e suba o container.
$ docker-compose build && docker-compose up
Se adicionar uma nova dependência.
$ docker-compose build --no-cache && docker-compose up
Para que você possa interagir com a aplicação, na pasta docs
existe uma coleção do postman.
$ juni build
Para executar um teste gravando todos os dados da requisição com o vcr.
$ docker exec -it <ID OU NOME DO CONTAINER> pytest --record-mode=rewrite tests/hello.py
Para executar os testes utilizando os dados gravados e bloqueando a camada de rede.
$ docker exec -it <ID OU NOME DO CONTAINER> pytest --block-network tests/hello.py
Para executar os testes com cobertura de testes gerando um relatório em html.
$ docker exec -it <ID OU NOME DO CONTAINER> pytest --block-network --cov-config .coveragerc --cov src --cov-report html tests/hello.py
- https://github.com/localstack/localstack
- https://www.serverless.com/framework/docs
- https://docs.docker.com/docker-for-mac/networking
- https://pypi.org/project/juniper
- https://pytest-cov.readthedocs.io/en/latest
- https://pypi.org/project/pytest-vcr
- https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html