EdgeX Foundry的常用环境变量
目录
标准环境变量
EDGEX_SECURITY_SECRET_STORE
EDGEX_STARTUP_DURATION
EDGEX_STARTUP_INTERVAL
可重载环境变量
命令行重载变量
EDGEX_CONF_DIR
EDGEX_CONFIG_FILE
EDGEX_CONFIGURATION_PROVIDER
EDGEX_PROFILE
EDGEX_USE_REGISTRY
配置重载变量
值得注意的配置覆盖
KONG_SSL_CIPHER_SUITE (edgex-kong service)
TOKENFILEPROVIDER_DEFAULTTOKENTTL (security-secretstore-setup service)
翻译Common Environment Variables - EdgeX Foundry Documentation
所有EdgeX服务都使用两种类型的环境变量。分别是标准环境变量和可重载环境变量。这两种环境变量的唯一的区别是,可重载环境变量适用于命令行选项和服务配置设置,标准环境变量则没有任何相应的命令行选项或配置设置。
标准环境变量
本节描述所有EdgeX服务通用的标准环境变量。一些服务可能有额外的标准环境变量,这些变量记录在这些服务特定的章节中。
EDGEX_SECURITY_SECRET_STORE
此环境变量指示服务是否需要初始化secure SecretStore,以允许服务从Vault访问secrets。如果未设置或未设置为false,则默认为true。设置为true时,EdgeX security services必须运行起来。如果在非安全模式下运行EdgeX,则需要将其显式设置为false。
示例-使用docker-compose禁用secure SecretStore
environment:
EDGEX_SECURITY_SECRET_STORE: "false"
需要注意的是,
对于在安全模式下运行的EdgeX 2.0,Consul(服务注册和发现)服务是安全模式的,这要求所有服务都应将此环境变量设置为true,以便它们可以从Vault请求其Consul access token。有关更多详细信息,请参阅Secure Consul部分。
EDGEX_STARTUP_DURATION
此环境变量设置服务完成引导启动所允许的总持续时间(秒)。默认值为60秒。
示例-使用docker-compose将启动持续时间设置为120秒
environment:
EDGEX_STARTUP_DURATION: "120"
注意,对于EdgeX 2.0,已删除该环境变量的小写版本startup_duration
EDGEX_STARTUP_INTERVAL
此环境变量设置服务在引导启动失败后,尝试重新启动服务的时间间隔(秒)。默认值为1秒。
示例-使用docker-compose将启动间隔设置为3秒
environment:
EDGEX_STARTUP_INTERVAL: "3"
注意,对于EdgeX 2.0,已删除该环境变量的小写版本startup_interval
可重载环境变量
该类环境变量分为命令行和配置两种
重要提示:
可重载环境变量优先于所有命令行、本地配置和远程配置。比如,如果在consul服务中设置了可重载环境变量,则在服务从consul加载配置后,该设置将被覆盖。
命令行重载变量
EDGEX_CONF_DIR
此环境变量重写 -c或者--confdir 命令行选项。
提示:
所有EdgeX service Docker映像都将此选项设置为 /res。
示例-使用docker-compose覆盖配置文件夹名称
environment:
EDGEX_CONF_DIR: "/my-config"
EDGEX_CONFIG_FILE
此环境变量重写 -f或者--file命令行选项。
示例-使用docker-compose覆盖正在使用的配置文件名
environment:
EDGEX_CONFIG_FILE: "my-config.toml"
EDGEX_CONFIGURATION_PROVIDER
此环境变量重写-cp或者--configProvider命令行选项。
提示:
所有EdgeX service Docker映像都将此选项设置为-cp=consul.http://edgex-core-consul:8500
.
示例-使用docker-compose覆盖不同的端口号
environment:
EDGEX_CONFIGURATION_PROVIDER: "consul.http://edgex-consul:9500"
EDGEX_PROFILE
此环境变量重写-p或--profile命令行选项。非空时,该值用于configuration文件的路径。比如 /res/my-profile/configuation.toml。这在运行一个服务的多个实例(如App service Configurable)时非常有用。
示例-使用docker-compose覆盖要使用的配置文件
app-service-rules:
image: edgexfoundry/docker-app-service-configurable:2.0.0
environment:
EDGEX_PROFILE: "rules-engine"
...
这将设置profile文件,让App Service Configurable使用rules-engine来位于/res/rules engine/configuration.toml的规则引擎配置文件
注意,对于EdgeX 2.0,已删除该环境变量的小写版本edgex_profile
EDGEX_USE_REGISTRY
此环境变量重写-r或者--registry命令行选项。
提示:
所有EdgeX service Docker映像都将此选项设置为--registry。
示例-使用docker-compose覆盖注册表的使用
environment:
EDGEX_USE_REGISTRY: "false"
注意,对于EdgeX 2.0,已删除该环境变量的小写版本edgex_registry
配置重载变量
服务configuration.toml.toml文件中的配置都可以被环境变量覆盖。环境变量名称的格式如下:
_
__
注意:
EdgeX 2.0不再支持使用驼峰形式的环境变量名。相反,变量名必须全部为大写,如下例所示。此外,在TOML-NAME中使用破折号将转换为环境变量名称中的下划线。
示例-配置的环境覆盖
``` toml
TOML : [Writable]
LogLevel = "INFO"
ENVVAR : WRITABLE_LOGLEVEL=DEBUG
TOML : [Clients]
[Clients.core-data]
Host = "localhost"
ENVVAR : CLIENTS_CORE_DATA_HOST=edgex-core-data
```
值得注意的配置覆盖
本节介绍具有特殊实用程序的环境变量重写,例如启用调试功能或促进代码开发。
KONG_SSL_CIPHER_SUITE (edgex-kong service)
此变量控制由Kong实施的EdgeX API网关支持的TLS密码套件和协议。如果未指定此变量,则选择支持TLSv1.2、TLSv1.3和相对现代的TLS密码的“中间”密码套件。默认情况下,EdgeX框架将此值覆盖为“modern”,目前仅启用TLSv1.3和固定密码套件。众所周知,“现代”密码套件与较旧的web浏览器不兼容,但由于API网关的目标用途是支持API客户端,而不是浏览器,EdgeX安全工作组于2021 9月8日认为这种行为是可以接受的。
TOKENFILEPROVIDER_DEFAULTTOKENTTL (security-secretstore-setup service)
此变量控制为EdgeX microservices创建的默认secretstore令牌的TTL。如果未指定,此变量默认为1h(一小时)。在开发新的微服务时,将此值设置为更高的值(例如12h)通常很有用。这个更高的值将允许秘密存储令牌保持足够长的有效时间,以使开发人员能够让新的微服务工作,并进入可以更新自己令牌的状态。(如果不定期更新,EdgeX中的所有机密存储令牌将过期。)