Files
easyai-ai-gateway/deploy/kubernetes/production/application-config.yaml
T
wangbo 394cc6288f fix(runner): 修复图像结果转存与任务租约失效
修正非语义字段长 Base64 元数据被误判为媒体的问题,并允许按文件签名识别真实媒体后转存 OSS;同时将网关本地存储失败与上游失败分离,避免重复调用和错误降权。

异步任务复用已分配并发名额前立即刷新租约,租约已丢失时重新排队获取,避免排队耗时侵蚀租约后错误调用上游。生产环境关闭 server-main 尚未实现的进度回调,保留 Gateway 任务详情与事件查询。

验证:API 全量 go test、go vet、gofmt、Kubernetes 渲染、迁移安全检查及真实阿里云 OSS 读写/生命周期验收通过。
2026-08-04 13:48:44 +08:00

63 lines
2.9 KiB
YAML

apiVersion: v1
kind: ConfigMap
metadata:
name: easyai-ai-gateway-config
labels:
app.kubernetes.io/part-of: easyai-ai-gateway
data:
APP_ENV: production
HTTP_ADDR: ":8088"
IDENTITY_MODE: hybrid
IDENTITY_SECRET_STORE: kubernetes
IDENTITY_KUBERNETES_NAMESPACE: easyai
IDENTITY_KUBERNETES_SECRET_NAME: easyai-gateway-security-events
IDENTITY_SECURITY_EVENTS_HEARTBEAT_INTERVAL_SECONDS: "60"
IDENTITY_SECURITY_EVENTS_STALE_AFTER_SECONDS: "180"
IDENTITY_SECURITY_EVENTS_CLOCK_SKEW_SECONDS: "60"
SERVER_MAIN_BASE_URL: http://10.77.0.1:3001
# server-main 当前没有实现该回调路由。关闭无效投递,任务结果继续通过
# Gateway task detail/events 接口读取;实现并验收接收端后再显式开启。
TASK_PROGRESS_CALLBACK_ENABLED: "false"
TASK_PROGRESS_CALLBACK_URL: http://10.77.0.1:3001/internal/platform/task-progress-callbacks
TASK_PROGRESS_CALLBACK_TIMEOUT_MS: "5000"
TASK_PROGRESS_CALLBACK_MAX_ATTEMPTS: "10"
AI_GATEWAY_TASK_CLEANUP_ENABLED: "false"
AI_GATEWAY_TASK_RETENTION_DAYS: "30"
AI_GATEWAY_TASK_ANALYSIS_RETENTION_DAYS: "7"
AI_GATEWAY_TASK_CLEANUP_INTERVAL_SECONDS: "300"
AI_GATEWAY_TASK_CLEANUP_BATCH_SIZE: "1000"
AI_GATEWAY_DATABASE_IDLE_IN_TRANSACTION_TIMEOUT_SECONDS: "60"
AI_GATEWAY_DATABASE_LOCK_TIMEOUT_SECONDS: "30"
CORS_ALLOWED_ORIGIN: https://ai.51easyai.com
AI_GATEWAY_PUBLIC_BASE_URL: https://ai.51easyai.com
AI_GATEWAY_WEB_BASE_URL: https://ai.51easyai.com
AI_GATEWAY_GENERATED_STORAGE_DIR: /app/data/static/generated
AI_GATEWAY_UPLOADED_STORAGE_DIR: /app/data/static/uploaded
AI_GATEWAY_LOCAL_TEMP_ASSET_TTL_HOURS: "24"
AI_GATEWAY_LOCAL_RESULT_TTL_HOURS: "24"
AI_GATEWAY_LOCAL_RESULT_MIN_FREE_BYTES: "10737418240"
AI_GATEWAY_LOCAL_RESULT_MAX_BYTES: "268435456"
AI_GATEWAY_LOCAL_RESULT_MAX_TASK_BYTES: "536870912"
AI_GATEWAY_MEDIA_OSS_DIRECT_ENABLED: "true"
AI_GATEWAY_MEDIA_OSS_ENDPOINT: https://wangbo0808.oss-cn-shanghai.aliyuncs.com
AI_GATEWAY_MEDIA_OSS_BUCKET: wangbo0808
AI_GATEWAY_MEDIA_OSS_PUBLIC_BASE_URL: https://aliyuncdn.51easyai.com
AI_GATEWAY_MEDIA_OSS_OBJECT_PREFIX: easyai-ai-gateway/production/media
AI_GATEWAY_ASYNC_QUEUE_WORKER_ENABLED: "true"
AI_GATEWAY_ASYNC_WORKER_HARD_LIMIT: "48"
AI_GATEWAY_ASYNC_WORKER_GLOBAL_HARD_LIMIT: "48"
AI_GATEWAY_ASYNC_WORKER_REFRESH_INTERVAL_SECONDS: "5"
AI_GATEWAY_WORKER_AUTOSCALING_ENABLED: "false"
AI_GATEWAY_WORKER_REPLICAS_NINGBO: "1"
AI_GATEWAY_WORKER_MIN_REPLICAS_NINGBO: "1"
AI_GATEWAY_WORKER_MAX_REPLICAS_NINGBO: "1"
AI_GATEWAY_WORKER_TARGET_OUTSTANDING_PER_REPLICA: "48"
AI_GATEWAY_WORKER_SCALE_UP_WINDOW_SECONDS: "20"
AI_GATEWAY_WORKER_SCALE_DOWN_STABILIZATION_SECONDS: "600"
AI_GATEWAY_WORKER_DRAIN_TIMEOUT_SECONDS: "600"
AI_GATEWAY_NODE_MEMORY_TARGET_PERCENT: "75"
AI_GATEWAY_NODE_MEMORY_HARD_PERCENT: "85"
AI_GATEWAY_NODE_CPU_TARGET_PERCENT: "70"
AI_GATEWAY_POSTGRES_CONNECTION_BUDGET: "150"
AI_GATEWAY_WORKER_DATABASE_MAX_CONNS: "32"