Go:环境变量的设置

108 阅读1分钟

Go:环境变量

在Go中,访问环境变量真的很容易,你只需导入os包并使用Gentenv函数,有点像这样。

package main

import (
	"fmt"
	"os"
)

func main() {
	fmt.Printf("I'm %s\n", os.Getenv("USER"))
}

这肯定是可行的,但是如果你打算建立一个12因素的应用程序,你需要的就不止这些了。毫不奇怪,已经有两个很酷的软件包(我个人使用)来完成这个任务:github.com/kelseyhight…github.com/joho/godote…

对于我们要实现的目标,其中一个不应该足够了吗?你可能想知道为什么要同时使用这两个?

如果你真的很挑剔,你可以说你不需要它们,因为使用标准包就够了,我可以同意这个观点,但是,由于我目前用Go构建和部署系统的方式,我更喜欢从文件中注入环境配置(使用godotenv),并将它们全部包装成漂亮、干净的结构,以便于访问(使用envconfig)。

对于我的具体工作流程来说,这两种方法相辅相成,因为你可以很容易地从文件中加载默认变量,如果需要的话,可以覆盖它们,最后在Go代码中以结构形式使用它们。

我创建了一个Github资源库来解释这个概念,简单却又如此强大