> 文档中心 > EdgeX Foundry的常用环境变量

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中的所有机密存储令牌将过期。)