- Deleted: TNAR, demo-event-log, demo-managed-functions, hello-go, hello-node, k8s, notes-python, pg-list-python, simple-node, simple-python - POSTGRES: removed luceUNDnode.tf (commented-out legacy), stress_log_1.txt, funcs_list.py; disabled stress_destroy_apply.sh (PG lifecycle stress has delete_user bug); added README.md - examples/README.md: updated to reflect current state (sless_service + sless_job)
76 lines
2.7 KiB
Markdown
76 lines
2.7 KiB
Markdown
# Примеры использования 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
|
||
```
|