![778ef4c6c12b9027b3e3598d32953a81.png](https://i-blog.csdnimg.cn/blog_migrate/a8600021ce0f688f319f59829b6d7286.png)
问题描述
Viper (本文环境是Viper 1.1.0)是Go应用程序的完整配置解决方案,在很多项目中都有应用。etcd是一个分布式KV存储,最直接的应用是配置中心。
Viper除了支持从文件中读取配置,还支持从远程的配置中心读取配置,使用下面的代码进行配置。
viper.AddRemoteProvider("etcd",
"http://127.0.0.1:2379",
"conf.toml")
viper.SetConfigType("toml")
err := viper.ReadRemoteConfig()
if err != nil {
panic(err)
}
运行后报错panic: Remote Configurations Error: No Files Found
,检查后发现etcd开启了tls,所以需要用https协议访问etcd的API,更新代码如下。
viper.AddSecureRemoteProvider("etcd",
"https://127.0.0.1:2379",
"conf.toml