Environment Variables#
本页是 Perago 运行时环境变量的精确参考。任务作者通常只需要从
runtime/configuration 理解配置流程;排查启动失败、部署变量和本机目录问题时,以本页表格为准。
Perago 只读取当前工作目录下的 .env 和进程环境变量。合并顺序是:
.env values < process environment values
也就是说,.env 只能提供默认值,shell、部署系统或 supervisor 注入的进程环境变量会覆盖同名 .env 值。
连接变量#
变量 |
状态 |
默认值 |
读取位置 |
校验和说明 |
|---|---|---|---|---|
|
required for |
无 |
|
空值表示未配置;值会去除前后空白。 |
|
required for |
无 |
|
LakeFS 三个变量必须全部配置或全部省略;缺任意一个都会报 |
|
required for |
无 |
|
空值表示未配置; |
|
required for |
无 |
|
不会在 |
Perago 目前不会把 Conductor auth key、Conductor auth secret 或 LakeFS 配置写入 Conductor TaskDef,也不会把这些值放入 task input/output。它们是 worker-local runtime config。
本机运行变量#
变量 |
状态 |
默认值 |
读取位置 |
校验和说明 |
|---|---|---|---|---|
|
optional |
平台临时目录下的 |
|
attempt-local workspace 根目录。默认会探测目录是否可创建、可写。 |
|
optional |
平台临时目录下的 |
|
worker JSONL 日志根目录。默认会探测目录是否可创建、可写。 |
|
optional |
|
|
接受正数加 |
|
optional |
|
|
接受正整数加 |
|
optional |
从 module target 删除非字母数字字符后派生 |
|
只能包含 ASCII 字母和数字。supervisor 使用它派生 broker worker id 和 executor |
|
generated / debug-only |
supervisor 生成;非 supervisor 调试进程退回到 |
worker runtime identity |
|
|
optional |
|
|
接受 |
|
optional |
|
|
接受正整数加 |
|
optional |
|
|
接受正整数加 |
|
optional |
unset |
|
接受正整数加 |
.env 解析规则#
.env 解析是有意保持简单的:
支持
KEY=value。支持
export KEY=value。支持用单引号或双引号包裹整个值。
忽略空行、注释行和没有
=的行。不做 shell 展开、变量插值或转义解释。
示例:
export PERAGO_LOG_FILE_MAX_SIZE=512KB
PERAGO_WORKSPACE_ROOT='/tmp/perago/workspaces'
PERAGO_LOG_ROOT="/tmp/perago/logs"
PERAGO_WORKER_ID_PREFIX=localWorker
PERAGO_EXECUTION_MODE=process
PERAGO_WORKSPACE_GC_TTL=24h
PERAGO_WORKSPACE_GC_INTERVAL=1h
PERAGO_SHUTDOWN_FORCE_KILL_AFTER=30s
命令要求#
命令 |
必须完整配置连接变量吗 |
会探测本机目录吗 |
说明 |
|---|---|---|---|
|
否 |
是 |
可在没有 Conductor/LakeFS 的本机环境中检查 task module 和配置形状。 |
|
否 |
是 |
可生成 TaskDef JSON;连接变量不会写入 TaskDef。 |
|
是 |
是 |
启动前要求 |
如果只配置了部分 LakeFS 变量,三个命令都会在加载 runtime config 阶段失败;这是为了避免部署环境带着半套连接配置继续运行。
perago start 还会在 PERAGO_WORKSPACE_ROOT 下创建 .perago-supervisor.lock,锁内容包含当前 supervisor pid。已有活 pid 锁时,启动会失败并提示为每个 supervisor 使用不同的 PERAGO_WORKSPACE_ROOT;崩溃遗留的死 pid 锁会在启动时被替换。
常见错误文本#
错误文本 |
触发条件 |
修复 |
|---|---|---|
|
启动 worker 时未配置 Conductor endpoint。 |
在 |
|
LakeFS 三个变量只配置了一部分。 |
同时配置 endpoint、access key id 和 secret access key,或在非 |
|
连接变量仍是 |
用真实部署值替换 |
|
日志文件大小不是 |
使用正数和 |
|
日志保留期不是正整数天数。 |
使用 |
|
worker id prefix 含有连字符、下划线、点号或非 ASCII 字符。 |
改成只含字母和数字的前缀,例如 |
|
execution mode 不是支持的枚举值。 |
使用默认 |
|
workspace GC TTL 格式非法。 |
使用 |
|
workspace GC interval 格式非法。 |
使用 |
|
shutdown force-kill deadline 格式非法。 |
使用 |