标识
Appaloft 的配置合并顺序(从低到高):defaults -> system -> organization -> project -> environment -> resource -> deployment snapshot。
输入字段与校验
| 规则 | 说明 |
|---|---|
| 越靠近具体部署,优先级越高 | 资源级变量 > 环境级变量 > 项目/系统默认值 |
同名覆盖需要 key + exposure 都相同 | 只有作用域和暴露方式一致时才会互相覆盖 |
| 部署创建时冻结快照 | 部署完成后再修改变量,不会改变那次已完成的部署 |
构建时变量 vs 运行时变量
| 类型 | 何时使用 | 能否标记为 Secret |
|---|---|---|
| 构建时变量 | 前端构建、静态产物生成等 build 阶段 | 不可以——会进入构建产物,可能暴露给浏览器 |
| 运行时变量 | 应用启动和运行时读取 | 可以——读模型和日志必须屏蔽真实值 |
如果一个变量会被浏览器看到(例如带 PUBLIC_ 或 VITE_ 前缀),就不应该标记或当作 Secret 使用;反过来,带 Secret 特征名称(如 *_TOKEN、*_PASSWORD)的构建时变量会被直接拒绝,而不是被静默降级。
输出字段与状态值
environments.effective-precedence:查看某个环境在资源覆盖之前会贡献的有效变量。resources.effective-config:查看资源级变量覆盖环境级变量之后,最终会进入部署的配置视图,并附带安全的来源/覆盖摘要。
命令 / 接口示例
# 设置环境级变量
appaloft env set-variable env_prod APP_URL "https://app.example.com"
# 设置资源级覆盖(优先级高于同名环境变量)
appaloft resource set-variable res_web LOG_LEVEL debug
# 查看某环境的有效变量
appaloft env effective-precedence env_prod
# 查看某资源最终会进入部署的配置视图
appaloft resource effective-config res_web
# 从粘贴的 .env 内容批量导入(重复 key 以最后一行为准)
appaloft resource import-variables res_web --file .env.production错误码与恢复提示
如果部署没有读到预期的新变量:
- 确认变量设置在正确的环境或资源上,而不是设在了另一个同名环境。
- 确认这个变量应该是构建时还是运行时变量。
- 如果目标是运行中的实例,必须触发一次新部署才能读取新的部署快照——修改变量本身不会热更新正在运行的进程。
- 如果是构建时变量,需要重新构建并部署,才能让新值进入产物。