Files
sless/examples/README.md
T
Naeel 7f7aa44e59 chore: удаление устаревших examples, новый doc, правки funcs-service
- examples/: удалены старые директории (TNAR, demo-event-log, demo-managed-functions,
  hello-go, hello-node, notes-python, pg-list-python, simple-node, simple-python)
- examples/README.md: обновлён (только POSTGRES остался)
- doc/decisions/build-deploy-pipeline.md: новый документ по пайплайну сборки/деплоя
- services/funcs/main.go: правки из текущей сессии
2026-03-21 08:46:30 +03:00

76 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Примеры использования 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
```