- python 3.9
- В изначальном коде менять можно всё, вплоть до структуры файлов.
- Использовать можно всё что угодно.
- Таски со звёздочкой можно пропускать (или делать часть из них)
- Решение выложить через fork/копию/etc репозитория на github
-
реализовать функцию is_alive_host
-
покрыть функцию тестами
-
развернуть вокруг функции веб сервис c помощью fastapi
>> curl your_service.loc:8001/healthz?hostname=semrush.com
{status: [up|down]}
- задача со звёздочкой: завернуть приложение в docker
- задача на две звёздочки: выкатить куда-либо с помощью github-actions/gitlab/jenkins/etc
- is_alive_host logic
- tests
- service
- Docker
- github actions
Uses Python 3.9, aiohttp, FastAPI, pytest-asyncio
- install dependencies
pip install -r requirements.txt
- run tests:
pytest tests.py
- start
dev:
uvicorn service:app --host=127.0.0.1 --port=8001 --reload
prod:
gunicorn service:app --bind=127.0.0.1:8001 -w 4 -k uvicorn.workers.UvicornH11Worker
docker:
docker build --tag petrov-python-intern:latest .
docker run -p 8001:8001 -e PORT=8001 -d --name petrov-python-intern petrov-python-intern:latest
heroku:
app available at https://semrush-petrov-python-intern.herokuapp.com/