- runtimes/go1.23: добавлен pgx/v5 v5.7.2 в go.mod, сгенерирован go.sum - runtimes/go1.23/Dockerfile: один stage golang:1.23-alpine, go mod download кеширует зависимости - internal/builder/context.go: тег Go runtime v0.1.0 → v0.1.1 - internal/api/handler/invoke.go: таймаут прокси-клиента теперь динамический из Function.Spec.TimeoutSec + 5s буфер (был хардкод 30s) - examples/POSTGRES/code/stress-go-pgstorm/handler.go: новая функция, 100 горутин, pgxpool, INSERT/COUNT/MAX, параметры: workers/duration_sec/max_delay_ms - examples/POSTGRES/resources.tf: добавлены sless_function.stress_go_pgstorm + trigger, timeout_sec=700 - deployments/k8s/operator.yaml: nginx ingress proxy-read-timeout=900s, proxy-send-timeout=900s - examples/*/main.tf: исправлен URL deck-api-test.ngcloud.ru → deck-test.ngcloud.ru (все 9 файлов) - Оператор: v0.1.39 (pgx/v5) → v0.1.40 (dynamic timeout)
44 lines
853 B
Go
44 lines
853 B
Go
package handler
|
|
// 2026-03-19
|
|
// handler.go — быстрая Go функция: факториал + числа Фибоначчи.
|
|
// Проверяет Go runtime под лёгкой нагрузкой и корректность JSON-ответа.
|
|
// Entrypoint: handler.Handle
|
|
package handler
|
|
|
|
import "fmt"
|
|
|
|
func factorial(n int) uint64 {
|
|
if n <= 1 {
|
|
return 1
|
|
}
|
|
return uint64(n) * factorial(n-1)
|
|
}
|
|
|
|
func fib(n int) int {
|
|
if n <= 1 {
|
|
return n
|
|
}
|
|
a, b := 0, 1
|
|
for i := 2; i <= n; i++ {
|
|
a, b = b, a+b
|
|
}
|
|
return b
|
|
}
|
|
|
|
func Handle(event map[string]interface{}) interface{} {
|
|
n := 10
|
|
if v, ok := event["n"].(float64); ok {
|
|
n = int(v)
|
|
if n > 20 {
|
|
n = 20
|
|
}
|
|
}
|
|
return map[string]interface{}{
|
|
"runtime": "go1.23",
|
|
"version": "v1",
|
|
"n": n,
|
|
"factorial": fmt.Sprintf("%d", factorial(n)),
|
|
"fib": fib(n),
|
|
}
|
|
}
|