37 lines
1.6 KiB
HCL
37 lines
1.6 KiB
HCL
# Создано: 2026-03-09
|
||
# time-display.tf — HTTP-функция, доступная по URL после apply.
|
||
# Получает результат джоба (из time-getter.tf) через переменную окружения JOB_TIME.
|
||
|
||
# Упаковываем код функции в 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-функция — отвечает на запросы по URL из outputs.tf
|
||
resource "sless_function" "time_display" {
|
||
name = "simple-node-time-display" # уникальное имя в namespace
|
||
runtime = "nodejs20"
|
||
entrypoint = "time_display.showTime" # файл.функция в code/time_display/
|
||
memory_mb = 64
|
||
|
||
# Передаём результат джоба в функцию через переменную окружения.
|
||
# В коде функции: process.env.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.js") # для пересборки при изменении кода
|
||
|
||
depends_on = [sless_job.run_getter] # ждём завершения джоба перед деплоем функции
|
||
}
|
||
|
||
# Публикуем функцию по HTTP — URL будет в outputs.tf
|
||
resource "sless_trigger" "display_http" {
|
||
name = "simple-node-display-http"
|
||
type = "http"
|
||
function = sless_function.time_display.name
|
||
}
|