78 lines
2.0 KiB
HCL
78 lines
2.0 KiB
HCL
# 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
|
|
}
|