# 2026-03-09 # notes-list.tf — функция для чтения всех заметок одним запросом. # # Отдельная от CRUD функция — «read-only» эндпоинт без роутинга. # Принимает GET или POST, параметры игнорирует. # Возвращает JSON-массив всех записей, сортировка: новые первые. # # Пример запроса: # curl https://sless-api.kube5s.ru/fn/default/notes-list # Упаковка исходников notes_list.py в zip. data "archive_file" "notes_list_zip" { type = "zip" source_dir = "${path.module}/code/notes-list" output_path = "${path.module}/dist/notes-list.zip" } # Read-only функция в кластере. # entrypoint = "notes_list.list_notes" → файл notes_list.py, функция list_notes(). resource "sless_function" "notes_list" { name = "notes-list" runtime = "python3.11" entrypoint = "notes_list.list_notes" memory_mb = 128 timeout_sec = 30 env_vars = { PG_DSN = var.pg_dsn } code_path = data.archive_file.notes_list_zip.output_path code_hash = filesha256("${path.module}/code/notes-list/notes_list.py") } # HTTP-триггер для read-only функции. # Создаёт Ingress, URL доступен в outputs.tf. resource "sless_trigger" "notes_list_http" { name = "notes-list-http" type = "http" function = sless_function.notes_list.name }