An open source FaaS (Function as a service) sdk for Sber Platform V functions local testing & running
Project description
FAAS-SDK для тестирования и локальной отладки Python функций
FAAS-SDK позволяет локально тестировать функции Platform V Functions без необходимости писать HTTP сервер и логику обработки запросов.
SDK для Python устанавливается как обычный пакет.
Пререквизиты
- Python 3.8.x;
- pip 19.3.x;
Установка и использование
-
Перейдите в директорию проекта с функцией в CLI. Если вы только начинаете локальную разработку, вы можете:
- Экспортировать функцию из Functions и распаковать архив в произвольную локальную директорию.
- Начать работу с чистого проекта - для этого создайте в произвольной локальной директории файл
handlers/handler.py
содержаший:
def handler(request): return "Hello from Python function"
Функция должна принимать один параметер
(request)
- FlaskRequest
object. -
Установите SDK:
pip install faas-sdk-python
-
Запустите функцию следующей командой:
faas-sdk-python --target handler --source handlers/handler.py
-
Отправьте запрос используя
curl
, браузер или другие инструменты:curl localhost:8080 # Hello from Python function
Конфигурация {uniqueId="konfiguratsiya5"}
Запуск SDK конфигурируется с помощью флагов командной строки или переменных среды:
Флаг | Переменная среды | Значение по умолчанию | Описание |
---|---|---|---|
--host |
HOST |
0.0.0.0 | Хост, на котором будет работать слушатель запросов |
--port |
PORT |
8080 | Порт, на котором будет работать слушатель запросов |
--target |
TARGET |
(отсутствует) | Имя функции, которая будет вызываться в ответ на запросы. Обязательный параметр |
--source |
SOURCE |
./handler.py | Путь к файлу, содержащему функцию |
--dry-run |
DRY_RUN |
false | Флаг, позволяющий тестировать сборку функции без запуска сервера |
Если один и тот же парметр задан и через флаги, и через переменную среды, то значение переменной среды будет игнорироваться.
Unit-тестирование
Вы можете добавить unit-тесты в тестируемую локально функцию так же, как и в любой Python проект.
Например, для тестирования hello, world
примера:
-
Создайте в директории
handlers
файл handler_test.py` со следующим содержанием:from unittest.mock import Mock import handler def test_hello(): request = Mock(data=Mock(decode=Mock(return_value="")), method="GET") assert handler.hello(request)=="Hello from Python function"
-
Перейдите в директорию проекта в CLI и запустите тест командой
pytest
. Результаты теста будут отображены в терминале.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for faas_sdk_python-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6ab4353136c00ef21cd16ae25295598db2df7d03059786bcc5b895714fcbda23 |
|
MD5 | 4da9699c8c68c158fee4d2d8c41aa292 |
|
BLAKE2b-256 | ec8b97cca99dedbc6e685a6362864d32c605c4b34c3bfb6f171ace20799d59cb |