- 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)
106 lines
3.1 KiB
HCL
106 lines
3.1 KiB
HCL
// 2026-03-20 (merge: sless_function + старый sless_job объединены в один self-contained sless_job)
|
||
// Теперь sless_job несёт в себе runtime/entrypoint/source_dir — не нужен отдельный sless_function.
|
||
// WaitJobDone таймаут 900s покрывает kaniko сборку (~5 мин) + выполнение SQL (~несколько сек).
|
||
|
||
# Одноразовый запуск: собирает образ через kaniko, выполняет SQL, завершается.
|
||
# Заменяет sless_function.postgres_sql_runner_create_table + sless_job.postgres_table_init_job.
|
||
resource "sless_job" "postgres_table_init_job" {
|
||
name = "pg-create-table-job-main-v13"
|
||
runtime = "python3.11"
|
||
entrypoint = "sql_runner.run_sql"
|
||
memory_mb = 128
|
||
timeout_sec = 30
|
||
source_dir = "${path.module}/code/sql-runner"
|
||
wait_timeout_sec = 900
|
||
run_id = 13
|
||
|
||
env_vars = {
|
||
PGHOST = local.pg_host
|
||
PGPORT = "5432"
|
||
PGDATABASE = local.pg_database
|
||
PGUSER = local.pg_username
|
||
PGPASSWORD = local.pg_password
|
||
PGSSLMODE = "require"
|
||
}
|
||
|
||
event_json = jsonencode({
|
||
statements = [
|
||
"CREATE TABLE IF NOT EXISTS terraform_demo_table (id serial PRIMARY KEY, title text NOT NULL, created_at timestamp DEFAULT now())"
|
||
]
|
||
})
|
||
|
||
depends_on = [nubes_postgres_database.db]
|
||
}
|
||
|
||
# Long-running сервис на NodeJS: возвращает версию PG-сервера и счётчик строк в таблице.
|
||
resource "sless_service" "pg_info" {
|
||
name = "pg-info"
|
||
runtime = "nodejs20"
|
||
entrypoint = "pg_info.info"
|
||
memory_mb = 128
|
||
timeout_sec = 15
|
||
|
||
env_vars = {
|
||
PGHOST = local.pg_host
|
||
PGPORT = "5432"
|
||
PGDATABASE = local.pg_database
|
||
PGUSER = local.pg_username
|
||
PGPASSWORD = local.pg_password
|
||
PGSSLMODE = "require"
|
||
}
|
||
|
||
source_dir = "${path.module}/code/pg-info"
|
||
|
||
depends_on = [sless_job.postgres_table_init_job]
|
||
}
|
||
|
||
resource "sless_service" "postgres_table_reader" {
|
||
name = "pg-table-reader"
|
||
runtime = "python3.11"
|
||
entrypoint = "table_rw.list_rows"
|
||
memory_mb = 128
|
||
timeout_sec = 30
|
||
|
||
env_vars = {
|
||
PGHOST = local.pg_host
|
||
PGPORT = "5432"
|
||
PGDATABASE = local.pg_database
|
||
PGUSER = local.pg_username
|
||
PGPASSWORD = local.pg_password
|
||
PGSSLMODE = "require"
|
||
}
|
||
|
||
source_dir = "${path.module}/code/table-rw"
|
||
|
||
depends_on = [sless_job.postgres_table_init_job]
|
||
}
|
||
|
||
output "table_reader_url" {
|
||
value = sless_service.postgres_table_reader.url
|
||
}
|
||
|
||
resource "sless_service" "postgres_table_writer" {
|
||
name = "pg-table-writer"
|
||
runtime = "python3.11"
|
||
entrypoint = "table_rw.add_row"
|
||
memory_mb = 256
|
||
timeout_sec = 45
|
||
|
||
env_vars = {
|
||
PGHOST = local.pg_host
|
||
PGPORT = "5432"
|
||
PGDATABASE = local.pg_database
|
||
PGUSER = local.pg_username
|
||
PGPASSWORD = local.pg_password
|
||
PGSSLMODE = "require"
|
||
}
|
||
|
||
source_dir = "${path.module}/code/table-rw"
|
||
|
||
depends_on = [sless_job.postgres_table_init_job]
|
||
}
|
||
|
||
output "table_writer_url" {
|
||
value = sless_service.postgres_table_writer.url
|
||
}
|