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 и распаковать архив в произвольную локальную директорию.
- Начать работу с чистого проекта - для этого создайте файл
handler.py
содержаший:
def hello(request): return "Hello from Python function"
Функция должна принимать один параметер
(request)
- FlaskRequest
object. -
Установите SDK:
pip install faas-sdk-python
-
Запустите функцию следующей командой:
faas-sdk-python --target handler --function-source handler.py
-
Отправьте запрос используя
curl
, браузер или другие инструменты:curl localhost:8082 # Hello from Python function
Конфигурация
Запуск SDK конфигурируется с помощью флагов командной строки или переменных среды:
Флаг | Переменная среды | Значение по умолчанию | Описание |
---|---|---|---|
--host |
HOST |
0.0.0.0 | Хост, на котором будет работать слушатель запросов |
--port |
PORT |
8082 | Порт, на котором будет работать слушатель запросов |
--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.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 624ce2fdeb3982255817c3daae26c50614d429664e50c39615d5e7d5603d6928 |
|
MD5 | f2519c13f2edb45f7024fbe45e001379 |
|
BLAKE2b-256 | c652008c4e5017bb2cd25794f052fc185817daa7f7059cbd4ea50c3c9eccafc3 |