// 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 }