getenv获取不到自己export的环境变量_如何避免将密码提交到代码库了?详解 Go 中的环境变量...

点击上方蓝色“ Go语言中文网 ”关注, 每天一起学 Go

了解环境变量以及在 Golang 应用程序中使用它们的不同方法。

开始之前

本教程假定你具有:

  • 对 Go 语言的基本了解
  • 系统上安装了最新 Golang 版本
  • 几分钟的时间

在本文中,我们将了解环境变量以及为什么要使用它们。并且将使用内置和第三方包在 Go 应用程序中访问它们。

什么是环境变量?

环境变量是系统级的键-值对,正在运行的进程可以访问它。这些通常用于使同一程序在不同的部署环境(例如 PROD, DEV 或 TEST)中表现不同。在环境中存储配置是 twelve-factor 应用程序的原理之一。它使应用程序具有可移植性。

为什么要使用环境变量

  • 如果您在代码中使用敏感信息,那么所有有权访问该代码的未授权用户都将拥有敏感数据,您可能不希望如此。
  • 如果您使用的代码版本控制工具如:git,那么可能将 DB 凭据与代码一起推送,它将公开。
  • 如果要在一处管理变量,则可以进行任何更改,而不必在应用程序代码中的所有位置都进行更改。
  • 您可以管理多个部署环境,例如 PROD,DEV 或 TEST。在部署之间可以轻松更改环境变量,而无需更改任何应用程序代码。

永远不要忘记在 .gitignore 中包含环境变量文件

内置操作系统包

您不需要任何外部程序包即可访问 Golang 中的环境变量,并且可以使用标准库 os 包来实现。以下是与环境变量有关的函数及其用途的列表。

  • os.Setenv() 设置环境值的值。
  • os.Getenv() 获取指定键对应的环境变量值。
  • os.Unsetenv() 删除指定键命名对应的单个环境值,如果我们再尝试使用 os.Getenv() 来获取该环境值,将返回一个空值。
  • os.ExpandEnv 根据环境变量的值替换字符串中的 ${var}$var。如果不存在任何环境变量,则将使用空字符串替换它。
  • os.LookupEnv() 获取指定键对应的环境变量值。如果系统中不存在该变量,则返回值将为空,并且布尔值将为 false。否则,它将返回值(可以为空),并且布尔值为 true。

如果不存在环境变量,则 os.Getenv() 将返回一个空字符串,使用 LookupEnv 来区分空值和未设置值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值