Files
sless/examples
Naeel b7fa8acf76 feat(web-console): create/edit/delete functions in UI, v0.1.4
- services/funcs: новые маршруты POST create-function, POST save-function,
  DELETE delete-function — создание/редактирование/удаление через браузер
- index.html: модалка создания с шаблонами Python/Node.js hello world,
  кнопки edit/delete на каждой карточке функции
- sless-funcs-service:v0.1.4 задеплоен
- examples/POSTGRES: удалены логи, .bak, backup tfstate, лишние функции
  оставлены 2 Python (pg-stats, pg-counter) + 2 Node.js (pg-info, js-idempotent)
2026-03-23 10:19:42 +03:00
..

Примеры использования 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