這是我的簡化配置:stripe: secret_key: sk_fromconfig為什么毒蛇不從環(huán)境中獲取價(jià)值?% echo $STRIPE_SECRET_KEYsk_fromenv% go run main.go sk_fromconfig我希望它從 env 中獲取價(jià)值,因?yàn)槲矣羞@樣一個:% echo $STRIPE_SECRET_KEYsk_fromenv% go run main.go sk_fromenv這是代碼:package mainimport ( "fmt" viper "github.com/spf13/viper")type Config struct { Stripe Stripe}type Stripe struct { SecretKey string `mapstructure:"secret_key"`}func main() { viper.SetConfigName("config") viper.SetConfigType("yaml") viper.AddConfigPath(".") viper.AutomaticEnv() _ = viper.ReadInConfig() var config Config _ = viper.Unmarshal(&config) fmt.Println(config.Stripe.SecretKey)}我試過了viper.BindEnv("STRIPE_SECRET_KEY"),viper.SetEnvPrefix("STRIPE")但沒有用。
1 回答

牛魔王的故事
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超3個贊
使用viper.SetEnvKeyReplacer
,因?yàn)樗粫詣犹鎿Q.
為_
viper.SetEnvKeyReplacer(strings.NewReplacer(`.`,`_`))
所以它正在尋找環(huán)境變量STRIPE.SECRET_KEY
,但由于大多數(shù) shell 不允許在環(huán)境變量名稱中使用點(diǎn),因此我們必須將其替換為下劃線。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報(bào)
0/150
提交
取消