如何为typesafe / lightbend配置提供数组/值列表作为环境变量?
application.conf
default-buckets = [
10,
30,
100,
300,
1000,
3000,
10000,
30000,
100000
]
default-buckets = [${?DEFAULT_BUCKETS}]
所以,我想传递这样的东西作为环境变量,以便能够覆盖默认值:
DEFAULT_BUCKETS=1000,3000
但是,我收到以下错误:
com.typesafe.config.ConfigException$WrongType: env variables: buckets.default-buckets has type list of STRING rather than list of NUMBER
这是否可行,而不必让我的应用程序代码处理它,例如打电话给split(',')
?
答案 0 :(得分:0)
据我所知,没有简单的方法来传递环境变量列表来覆盖conf值数组。
你必须像这样设置env vars:
export DEFAULT_BUCKETS_1=1000
export DEFAULT_BUCKETS_2=3000
然后将它们传递到conf文件中:
default-buckets = []
default-buckets.0 = ${?DEFAULT_BUCKETS_1}
default-buckets.1 = ${?DEFAULT_BUCKETS_2}
答案 1 :(得分:0)
default-buckets = [
${?DEFAULT_BUCKETS_1},
${?DEFAULT_BUCKETS_2},
${?DEFAULT_BUCKETS_3},
${?DEFAULT_BUCKETS_4},
${?DEFAULT_BUCKETS_5}
]
对于
DEFAULT_BUCKETS_1=10
DEFAULT_BUCKETS_2=30
DEFAULT_BUCKETS_5=100
结果
TestConfig(List(10, 30, 100))