如何访问 Golang 项目的 JSON 文件中的环境变量?

我的团队正在使用 Golang 进行编码,我们将所有配置放在一个conf.json有趣的部分中,如下所示,另一个config_schema.json文件用于 json 验证。


{

"host": "192.168.0.34",

"port": "5678",

"username": "test_user",

"password": "random_pass",

"dbName": "dummy"

}

我的问题是,我可以定义环境变量 .eg $USER 和 $PASS 并按如下方式使用它们还是出于安全目的有适当的方法来实现这一点?


{

"host": "192.168.0.34",

"port": "5678",

"username": "$USER",

"password": "$PASS",

"dbName": "dummy"

}


HUH函数
浏览 121回答 2
2回答

泛舟湖上清波郎朗

由于问题已经存在 1 年,可能为时已晚但您可以结合使用https://golang.org/pkg/os/#ExpandEnv 和https://golang.org/pkg/encoding/json/#Unmarshaler为了使用 Unmarshaler,你应该有一个struct对应于你的 json。然后您可以覆盖默认方法并仅替换您想要的字段。更简单的示例如下所示result := os.ExpandEnv(jsonString)现场示例: https: //play.golang.org/p/78C2zyYP6vL

红糖糍粑

我们最终使用了 env var,并在 Gitlab CI 环境变量中定义了用户名和密码,并启用了掩码,这样它们就不会显示在日志中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go