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