[zeromicro/go-zero]增加配置文件加载支持从环境传感器中读取传感器【完成】

2020-12-24 772 views

回答

4

有没有任何文档或示例来展示如何使用它?

8

了解如何使用 ENV 变量进行系统配置

  1. 我们更改主函数中的配置加载

    func main() {
    flag.Parse()
    
    var c config.Config
    
    #conf.MustLoad(*configFile, &c)
        conf.MustLoad(*configFile, &c, conf.UseEnv()) # enable env variable 
        .......
  2. 更改配置文件/internal/etc/xxx-api.yaml

    Name: ${SERVICE_NAME} 
    Host: 0.0.0.0
    Port: ${PORT} 
    Timeout: ${TIMEOUT}

我们现在从环境变量加载配置

  1. 如果你在本地工作中使用 vscode,将这些 env 添加到 launch.json 是一个不错的选择
    .vscode/launch.json
    {
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch Assets Api",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceFolder}/services/assets/api",
            "args": [], 
            "env": {
                "SERVICE_NAME": "assets-api",
                "PORT": "8889",
                "TIMEOUT": "100000",
            },
        },
    }

希望对你有帮助

1

有一个env标签可以使用环境变量。

type Config struct {
     ServiceName string `json:",env=SERVICE_NAME"`
}

...
    var c config.Config

    conf.MustLoad(*configFile, &c)