feat: provider v0.1.9 — namespace removed from resources, moved to provider block

This commit is contained in:
“Naeel”
2026-03-09 15:12:07 +04:00
parent 0aaeb47b3b
commit 17d32fcb39
23 changed files with 138 additions and 141 deletions
+11 -15
View File
@@ -1,39 +1,35 @@
# Создано: 2026-03-09
# time-display.tf — постоянная HTTP-функция, получающая данные от джоба.
# JOB_TIME берётся из sless_job.run_getter.message (stdout джоба) —
# это JSON строка {"time": "..."}, terraform передаёт её в env целиком.
# Функция парсит её через os.environ, а не через event — демонстрирует
# паттерн "данные вычислены один раз при деплое, используются на каждый запрос".
# time-display.tf — HTTP-функция, доступная по URL после apply.
# Получает результат джоба (из time-getter.tf) через переменную окружения JOB_TIME.
# Упаковываем код функции в zip
# Упаковываем код функции в zip для загрузки
data "archive_file" "time_display_zip" {
type = "zip"
source_dir = "${path.module}/code/time_display"
output_path = "${path.module}/dist/time_display.zip"
}
# HTTP-функция: постоянный Deployment, читает JOB_TIME из env
# HTTP-функция — отвечает на запросы по URL из outputs.tf
resource "sless_function" "time_display" {
namespace = "default"
name = "simple-py-time-display"
name = "simple-py-time-display" # уникальное имя в namespace
runtime = "python3.11"
entrypoint = "time_display.show_time"
entrypoint = "time_display.show_time" # файл.функция в code/time_display/
memory_mb = 64
# Значение вычислено джобом при apply и зафиксировано в state
# Передаём результат джоба в функцию через переменную окружения.
# В коде функции: os.environ.get("JOB_TIME")
env_vars = {
JOB_TIME = sless_job.run_getter.message
}
code_path = data.archive_file.time_display_zip.output_path
code_hash = filesha256("${path.module}/code/time_display/time_display.py")
code_hash = filesha256("${path.module}/code/time_display/time_display.py") # для пересборки при изменении кода
depends_on = [sless_job.run_getter]
depends_on = [sless_job.run_getter] # ждём завершения джоба перед деплоем функции
}
# HTTP-триггер — публикует функцию по URL
# Публикуем функцию по HTTP — URL будет в outputs.tf
resource "sless_trigger" "display_http" {
namespace = "default"
name = "simple-py-display-http"
type = "http"
function = sless_function.time_display.name