跳转到内容

Environment 系统

通过可配置的存储后端管理环境变量。

环境系统将存储与访问分离:

  • Storages - 值的存储位置(OS、文件、内存)
  • Variables - 对存储中值的命名引用

变量可以通过以下方式引用:

  • 公共名称 - variable 字段值(必须在系统中唯一)
  • Entry ID - 完整的 namespace:name 引用

如果不希望变量可以通过名称公开访问,请省略 variable 字段。

Kind描述
env.storage.memory内存键值存储
env.storage.file基于文件的存储(.env 格式)
env.storage.os只读 OS 环境访问
env.storage.static只读静态键值存储
env.storage.router链接多个存储
env.variable引用存储的命名变量

易失性内存存储。

- name: runtime_env
kind: env.storage.memory

使用 .env 文件格式的持久存储(KEY=VALUE# 注释)。

- name: app_config
kind: env.storage.file
file_path: /etc/app/config.env
auto_create: true
file_mode: 0600
dir_mode: 0700
属性类型默认值描述
file_pathstringrequired.env 文件路径
auto_createbooleanfalse文件不存在时创建
file_modeinteger0644文件权限
dir_modeinteger0755目录权限

只读访问操作系统环境变量。

- name: os_env
kind: env.storage.os

始终只读。Set 操作返回 PERMISSION_DENIED

只读存储,值直接在配置中定义。值嵌入到条目中,运行时无法更改。适用于随模块或包分发的公共配置常量。

- name: defaults
kind: env.storage.static
values:
PUBLIC_API_HOST: "https://api.example.com"
PUBLIC_WS_HOST: "wss://api.example.com/ws"
APP_ENV: "production"
属性类型描述
valuesmap键值对(字符串到字符串)

始终只读。Set 操作返回 PERMISSION_DENIED

链接多个存储。按顺序搜索读取直到找到。写入仅到第一个存储。

- name: config
kind: env.storage.router
storages:
- app.config:memory # Primary (writes here)
- app.config:file # Fallback
- app.config:os # Fallback
属性类型描述
storagesarray有序的存储引用列表

变量提供对存储值的命名访问。

- name: DATABASE_URL
kind: env.variable
variable: DATABASE_URL
storage: app.config:file
default: postgres://localhost/app
read_only: false
属性类型描述
variablestring公共变量名(可选,必须唯一)
storagestring存储引用(namespace:name
defaultstring未找到时的默认值
read_onlyboolean阻止修改

变量名只能包含:a-zA-Z0-9_

# Public variable - accessible by name "PORT"
- name: port_var
kind: env.variable
variable: PORT
storage: app.config:os
default: "8080"
# Private variable - accessible only by ID "app.config:internal_key"
- name: internal_key
kind: env.variable
storage: app.config:secrets
条件Kind可重试
变量未找到errors.NOT_FOUND
存储未找到errors.NOT_FOUND
变量只读errors.PERMISSION_DENIED
存储只读errors.PERMISSION_DENIED
无效变量名errors.INVALID