Files
fission-console/examples/big-suite/functions_checkout.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

62 lines
2.8 KiB
Terraform

# ──────────────────────────────────────────────────────────────────────────────
# Checkout layer: payment-validate (node) → order-create (go)
#
# payment-validate — depends_on cart-service
# order-create — depends_on payment-validate
# Go builder не запускается пока checkout chain не готов.
# Самый долгий шаг (~40s на сборку) — намеренно в конце.
# ──────────────────────────────────────────────────────────────────────────────
# ─── payment-validate ─────────────────────────────────────────────────────────
resource "fission_package" "payment_validate" {
name = "ecom-payment-validate-pkg"
environment = fission_environment.node.name
source_dir = "${path.module}/code/node-payment"
depends_on = [fission_http_trigger.cart_service]
}
resource "fission_function" "payment_validate" {
name = "ecom-payment-validate"
environment = fission_environment.node.name
package_name = fission_package.payment_validate.name
entrypoint = "main"
}
resource "fission_http_trigger" "payment_validate" {
name = "ecom-payment-validate-route"
function = fission_function.payment_validate.name
url = "/ecom/payment/validate"
methods = ["POST"]
}
# ─── order-create (Go) ────────────────────────────────────────────────────────
# Go builder pipeline: source zip → go-builder → .so плагин
# Намеренно в самом конце — запускать тяжёлый builder только когда весь
# checkout chain гарантированно развёрнут
resource "fission_package" "order_create" {
name = "ecom-order-create-pkg"
environment = fission_environment.go.name
source_dir = "${path.module}/code/go-order"
deploy_type = "source"
build_command = "build"
depends_on = [fission_http_trigger.payment_validate]
}
resource "fission_function" "order_create" {
name = "ecom-order-create"
environment = fission_environment.go.name
package_name = fission_package.order_create.name
entrypoint = "Handler"
}
resource "fission_http_trigger" "order_create" {
name = "ecom-order-create-route"
function = fission_function.order_create.name
url = "/ecom/orders"
methods = ["POST"]
}