Мы используем Viper для чтения и анализа нашего конфигурационного файла, и все это работает без каких-либо проблем.
Однако мы не можем переопределить некоторые из наших значений конфигурации с помощью переменных env. Это конкретные c случаи использования, когда конфигурация привязана к структуре или массиву структур.
Вот пример из нашего config.yaml:
app:
verifiers:
- name: "test1"
url: "http://test1.url"
cache: "5000ms"
- name: "test2"
url: "http://test2.url"
cache: "10000ms"
, который связан со следующими структурами (golang):
type App struct {
AppConfig Config `yaml:"app" mapstructure:"app"`
}
type Config struct {
Verifiers []VerifierConfig `json:"verifiers" yaml:"verifiers" mapstructure:"verifiers"`
}
type VerifierConfig struct {
Name string `json:"name" yaml:"name" mapstructure:"name"`
URL string `json:"url,omitempty" yaml:"url,omitempty" mapstructure:"url"`
cache jsontime.Duration `json:"cache" yaml:"cache" mapstructure:"cache"`
}
Мы не можем переопределить значение верификаторов, используя переменные env.
Вот опции Viper, которые мы использовали:
viper.AutomaticEnv()
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
Кто-нибудь сталкивался с подобной проблемой или может подтвердить, что Viper не поддерживает такой вариант использования?
Любой указатели будут с благодарностью.
Спасибо