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
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
# ──────────────────────────────────────────────────────────────────────────────
|
||||
# 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"]
|
||||
}
|
||||
Reference in New Issue
Block a user