环境变量管理

最近更新时间:2018-11-02 17:48:58

在创建或编辑云函数时,您可以通过修改配置中的环境变量,为云函数的运行环境增加、删除或修改环境变量。

在配置环境变量后,环境变量将在函数运行时配置到所在的操作系统环境中。函数代码可以使用读取系统环境变量的方式来获取到设置的具体值并在代码中使用。

新增环境变量

在创建函数的过程中,或针对创建后的函数进行编辑时,可通过单击【环境变量配置】>【新增环境变量】,增加环境变量输入框。
环境变量通常以 key-value 对的形式出现,请在环境变量的输入框中,前一输入框输入所需的环境变量 key,后一输入框输入所需的环境变量 value。

查看环境变量

在配置好云函数的环境变量后,可通过查看云函数的函数配置,查询到具体已配置的环境变量,环境变量以 key=value 的形式显示。

使用环境变量

已配置的环境变量,会在函数运行时配置到函数所在的运行环境中,可通过代码读取系统环境变量的方式来获取到具体值并在代码中使用。
假设针对云函数,配置的环境变量的 key 为 key,以下为各运行环境读取并打印此环境变量值的示例代码。
在 Python 运行环境中,读取环境变量的方法为:

import os
value = os.environ.get('key')
print(value)

在 Node.js 运行环境中,读取环境变量的方法为:

var value = process.env.key
console.log(value)

在 Java 运行环境中,读取环境变量的方法为:

System.out.println("value: "+ System.getenv("key"));

在 Golang 运行环境中,读取环境变量的方法为:

import "os"
var value string
value = os.Getenv("key")

在 PHP 运行环境中,读取环境变量的方法为:

$value = getenv('key');

使用场景

  • 可变值提取:针对业务中有可能会变动的值,提取至环境变量中,可避免需要根据业务变更而修改代码。
  • 加密信息外置:认证、加密相关的 key,从代码中提取至环境变量,可避免相关 key 硬编码在代码中而引起的安全风险。
  • 环境区分:针对不同开发阶段所要进行的配置和数据库信息,可提取到环境变量中,针对开发和发布的不同阶段,仅需要修改环境变量的值,分别执行开发环境数据库和发布环境数据库即可。

使用限制

针对云函数的环境变量,有如下使用限制:

  • 单个云函数的环境变量总条数为 128 条。
  • 每条记录,key 大小最多 64 字节,value 大小最多 128 字节,不允许 value 为空。
  • key 必须以字母 [a-zA-Z] 开头,只能包含字母数字字符和下划线 ( [a-zA-Z0-9_] )。
  • 预留的环境变量 key 无法配置,预留的 key 包括:SCF_ 开头的 key,例如 SCF_RUNTIME;QCLOUD_ 开头的 key,例如 QCLOUD_APPID;TECENTCLOUD_ 开头的 key,例如 TENCENTCLOUD_SECRETID。