一个 Go 库,用于解析来自环境变量的结构标签。
Envconfig 根据环境变量或配置文件中的值填充结构体字段值 它支持预设变异,这很有用。 例如将值转换为大写、去除空格或查找 保守秘密。
使用 env 标签定义具有字段的结构体:
type MyConfig struct {
Port string `env:"PORT"`
Username string `env:"USERNAME"`
}设置一些环境变量:
export PORT=5555
export USERNAME=yoyo使用 envconfig 处理它:
package main
import (
"context"
"log"
"github.com/sethvargo/go-envconfig"
)
func main() {
ctx := context.Background()
var c MyConfig
if err := envconfig.Process(ctx, &c); err != nil {
log.Fatal(err)
}
// c.Port = 5555
// c.Username = "yoyo"
}您还可以使用嵌套结构体,但请记住,任何您想要的字段 流程必须是公开的:
type MyConfig struct {
Database *DatabaseConfig
}
type DatabaseConfig struct {
Port string `env:"PORT"`
Username string `env:"USERNAME"`
}使用 env 结构标签来定义配置。请参阅 [godoc][] 以了解使用方法
示例。
required - 标记一个字段为必需字段。如果一个字段是必需的,如果环境变量未设置,解码将出错。作为一个特殊情况,默认值应包含一个字面量 $,因此需要用反斜线进行转义。不幸的是,这需要在结构标签中使用双反斜线:
[][godoc]
暂无开放 Issues,或尚未同步最近议题。