# 2026-03-14 # function.tf — ресурсы managed serverless функций для демонстрации. # Пользователь правит код в code/* и запускает terraform apply — провайдер сам пересобирает и выкатывает функции. resource "sless_function" "event_writer" { name = "event-writer" runtime = "python3.11" entrypoint = "event_writer_handler.event_writer_handle" memory_mb = 128 timeout_sec = 20 source_dir = "${path.module}/code/event-writer" env_vars = { POSTGRES_DSN = var.pg_dsn DEFAULT_MESSAGE = var.writer_message } } resource "sless_trigger" "event_writer_http" { name = "event-writer-http" type = "http" function = sless_function.event_writer.name enabled = true } resource "sless_function" "event_monitor" { name = "event-monitor" runtime = "python3.11" entrypoint = "event_monitor_handler.event_monitor_handle" memory_mb = 128 timeout_sec = 20 source_dir = "${path.module}/code/event-monitor" env_vars = { POSTGRES_DSN = var.pg_dsn RABBITMQ_URL = var.rabbitmq_url } } resource "sless_trigger" "event_monitor_cron" { name = "event-monitor-cron" type = "cron" function = sless_function.event_monitor.name enabled = true schedule = "*/1 * * * *" } resource "sless_function" "event_cleaner" { name = "event-cleaner" runtime = "python3.11" entrypoint = "event_cleaner_handler.event_cleaner_handle" memory_mb = 128 timeout_sec = 20 source_dir = "${path.module}/code/event-cleaner" env_vars = { POSTGRES_DSN = var.pg_dsn } } resource "sless_trigger" "event_cleaner_http" { name = "event-cleaner-http" type = "http" function = sless_function.event_cleaner.name enabled = true } output "event_writer_url" { value = sless_trigger.event_writer_http.url } output "event_cleaner_url" { value = sless_trigger.event_cleaner_http.url }