Files
fission-console/examples/big-suite/functions_async.tf
T
Naeel 01df1498d6 feat: big-suite terraform example + provider nodejs zip fix
- examples/big-suite: E-Commerce 10 functions, 6 layers, real depends_on
- provider: nodejs packages now wrapped in ESM zip (buildJSDeployZip)
- provider: loadPackageLiteral reads raw file, nodejs zip via source_dir
- all 10 functions verified working: python/node/ruby/go runtimes
2026-04-20 11:38:45 +03:00

60 lines
2.6 KiB
Terraform

# ──────────────────────────────────────────────────────────────────────────────
# 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"]
}