# Примеры использования sless ## Обзор платформы **sless** — система управления serverless-функциями на базе Kubernetes. Разработчик загружает код функции, платформа собирает из него Docker-образ, разворачивает его в кластере и предоставляет HTTP-эндпоинт для вызова. Всё описывается декларативно через Terraform. ### Основные ресурсы провайдера | Ресурс | Назначение | |---|---| | `sless_service` | Long-running HTTP-сервис: всегда активен, отвечает на запросы. Имеет свой URL после деплоя. | | `sless_job` | Одноразовый запуск функции: собирает образ, выполняет код, завершается. Используется для миграций БД, batch-обработки и т.д. | Namespace функций вычисляется автоматически из JWT-токена: `sless-{sha256[:8]}`. --- ## Требования - Terraform >= 1.3 - JWT-токен для аутентификации в sless API - JWT-токен для Nubes Cloud API (если используются managed-ресурсы: PostgreSQL и т.д.) - Доступ к `https://sless.kube5s.ru` ## Конфигурация провайдера ```hcl provider "sless" { endpoint = "https://sless.kube5s.ru" token = var.sless_token } provider "nubes_cloud" { base_url = "https://deck-api-test.ngcloud.ru/api/v1" token = var.nubes_token } ``` > Токены задаются в `terraform.tfvars` — этот файл добавлен в `.gitignore`. --- ## Примеры ### `POSTGRES` — Serverless-функции с Managed PostgreSQL Полный пример: managed PostgreSQL + одноразовый init-job + 3 HTTP-сервиса (чтение/запись данных и информация о PG). Языки: Python 3.11, Node.js 20. ```bash cd POSTGRES terraform init terraform apply ``` Подробности: [POSTGRES/README.md](POSTGRES/README.md) --- ## Полезные команды ```bash # Посмотреть состояние задеплоенных ресурсов: terraform show # Принудительно пересобрать сервис (после изменения кода): terraform apply -replace=sless_service.<имя> # Повторно запустить job: увеличить run_id в .tf-файле, затем: terraform apply # Удалить все ресурсы примера: terraform destroy ```