docs: переработан examples/README.md + комментарии function.tf

This commit is contained in:
“Naeel”
2026-03-11 16:48:01 +04:00
parent 81be52f6ef
commit 5c6a37313b
3 changed files with 157 additions and 90 deletions
+14 -14
View File
@@ -2,28 +2,28 @@
# function.tf — HTTP-функция: читает из PostgreSQL и возвращает список записей.
# Нет джобов, нет инициализации — только функция + HTTP триггер.
resource "sless_function" "product_catalog" {
name = "product-catalog"
runtime = "python3.11"
entrypoint = "catalog.list_products"
memory_mb = 128
timeout_sec = 10
resource "sless_function" "product_catalog" { # объявляем serverless-функцию; "product_catalog" — локальное имя в tf-state
name = "product-catalog" # имя функции в кластере; по нему формируется URL и имя k8s-объекта
runtime = "python3.11" # базовый образ рантайма; определяет как собирается и запускается код
entrypoint = "catalog.list_products" # файл.функция которую вызывает рантайм: catalog.py → def list_products(event)
memory_mb = 128 # лимит памяти пода в мегабайтах
timeout_sec = 10 # максимальное время выполнения одного запроса в секундах
source_dir = "${path.module}/code"
source_dir = "${path.module}/code" # директория с кодом функции; провайдер упакует её в zip и загрузит
# DSN передаётся через env — функция не знает об инфраструктуре
env_vars = {
PG_DSN = var.pg_dsn
PG_DSN = var.pg_dsn # строка подключения к PostgreSQL; берётся из переменной (variables.tf)
}
}
resource "sless_trigger" "product_catalog_http" {
name = "product-catalog-http"
type = "http"
function = sless_function.product_catalog.name
enabled = true
resource "sless_trigger" "product_catalog_http" { # триггер публикует функцию наружу; без него функция существует, но недоступна
name = "product-catalog-http" # имя триггера в кластере
type = "http" # тип триггера: "http" создаёт публичный URL; альтернатива — "cron"
function = sless_function.product_catalog.name # ссылка на имя функции выше; terraform гарантирует порядок создания
enabled = true # триггер активен сразу после создания
}
output "catalog_url" {
value = sless_trigger.product_catalog_http.url
value = sless_trigger.product_catalog_http.url # URL вида https://sless-api.../fn/<namespace>/<name>; выводится после apply
}