# ────────────────────────────────────────────────────────────────────────────── # Async layer: notifier (ruby) + report-daily (go) # # Обе функции depends_on order-create — запускаются ПАРАЛЛЕЛЬНО между собой, # но только после того как order-create (Go) задеплоен. # Моделируют async side-effects после создания заказа. # ────────────────────────────────────────────────────────────────────────────── # ─── notifier ───────────────────────────────────────────────────────────────── resource "fission_package" "notifier" { name = "ecom-notifier-pkg" environment = fission_environment.ruby.name source_dir = "${path.module}/code/ruby-notifier" depends_on = [fission_http_trigger.order_create] } resource "fission_function" "notifier" { name = "ecom-notifier" environment = fission_environment.ruby.name package_name = fission_package.notifier.name entrypoint = "handler" } resource "fission_http_trigger" "notifier" { name = "ecom-notifier-route" function = fission_function.notifier.name url = "/ecom/notify" methods = ["POST"] } # ─── report-daily (Go) ──────────────────────────────────────────────────────── # Второй Go-пакет — использует тот же ecom-go-env. # Билдится параллельно с notifier, но после order-create. resource "fission_package" "report_daily" { name = "ecom-report-daily-pkg" environment = fission_environment.go.name source_dir = "${path.module}/code/go-report" deploy_type = "source" build_command = "build" depends_on = [fission_http_trigger.order_create] } resource "fission_function" "report_daily" { name = "ecom-report-daily" environment = fission_environment.go.name package_name = fission_package.report_daily.name entrypoint = "Handler" } resource "fission_http_trigger" "report_daily" { name = "ecom-report-daily-route" function = fission_function.report_daily.name url = "/ecom/reports/daily" methods = ["GET"] }