| DEVfromGround | ||
| NODEJS | ||
| POSTGRES | ||
| VM | ||
| .gitignore | ||
| README.md | ||
Примеры использования 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
Конфигурация провайдера
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.
cd POSTGRES
terraform init
terraform apply
Подробности: POSTGRES/README.md
Полезные команды
# Посмотреть состояние задеплоенных ресурсов:
terraform show
# Принудительно пересобрать сервис (после изменения кода):
terraform apply -replace=sless_service.<имя>
# Повторно запустить job: увеличить run_id в .tf-файле, затем:
terraform apply
# Удалить все ресурсы примера:
terraform destroy