tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

环境变量

PDF
聚焦模式
字号
最后更新时间: 2024-04-22 17:45:15
在创建或编辑云函数时,您可以通过修改配置中的环境变量,为云函数的运行环境增加、删除或修改环境变量。
在配置环境变量后,环境变量将在函数运行时配置到所在的操作系统环境中。函数代码可以使用读取系统环境变量的方式来获取到设置的具体值并在代码中使用。

新增环境变量

使用控制台新增环境变量

1. 登录 Serverless 控制台,单击左侧导航栏的函数服务。
2. 在创建函数的过程中,或针对已创建的函数进行编辑时,可在“环境变量”中,增加环境变量。 环境变量通常以 key-value 对的形式出现,请在环境变量的输入框中,前一输入框输入所需的环境变量 key,后一输入框输入所需的环境变量 value。注意,key、value 的取值必须以字母起始,只能包含字母、数字及"_",长度不小于 2 位且不大于 64 字节。

本地新增环境变量

本地开发时,可以直接在 serverless.yml 中的函数下配置环境变量 Environment ,然后执行 scf deploy 命令部署到云端。如下所示:
component: scf # (必选) 组件名称,在该实例中为scf
name: scfdemo # (必选) 组件实例名称。

#组件参数配置
inputs:
name: scfdemo # 云函数名称,默认为 ${name}-${stage}-${app}
namespace: default
# 1. 默认写法,新建特定命名的 cos bucket 并上传
src: ./src
type: event # 函数类型,默认为 event(事件类型),web(web类型)
handler: index.main_handler #入口(函数类型为事件类型时生效)
runtime: Nodejs10.15 # 运行环境 默认 Nodejs10.15
region: ap-guangzhou # 函数所在区域
description: This is a function in ${app} application.
memorySize: 128 # 内存大小,单位MB
timeout: 20 # 函数执行超时时间,单位秒
initTimeout: 3 # 初始化超时时间,单位秒
environment: # 环境变量
variables: # 环境变量对象
TEST1: value1
TEST2: value2

查看环境变量

在配置好云函数的环境变量后,可通过查看云函数的函数配置,查询到具体已配置的环境变量,环境变量以 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 运行环境中,读取环境变量的方法分为临时授权字段和其他字段两种情况:
临时授权字段包括:TENCENTCLOUD_SESSIONTOKENTENCENTCLOUD_SECRETIDTENCENTCLOUD_SECRETKEY,读取环境变量的方法为:
System.out.println("value: "+ System.getProperty("key"));
其他字段,读取环境变量的方法为:
System.out.println("value: "+ System.getenv("key"));
在 Golang 运行环境中,读取环境变量的方法为:
import "os"
var value string
value = os.Getenv("key")
在 PHP 运行环境中,读取环境变量的方法为:
$value = getenv('key');

使用场景

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

使用限制

针对云函数的环境变量,有如下使用限制:
key 必须以字母 [a-zA-Z] 开头,只能包含字母数字字符和下划线( **[a-zA-Z0-9_]**)。
预留的环境变量 key 无法配置。预留的 key 包括:
SCF_ 开头的 key,例如 SCF_RUNTIME。
QCLOUD_ 开头的 key,例如 QCLOUD_APPID。
TECENTCLOUD_ 开头的 key,例如 TENCENTCLOUD_SECRETID。

已内置环境变量

目前运行环境中已内置的环境变量的 Key 及 Value 见下表:
环境变量 Key
具体值或值来源
TENCENTCLOUD_SESSIONTOKEN
{临时 SESSION TOKEN}
TENCENTCLOUD_SECRETID
{临时 SECRET ID}
TENCENTCLOUD_SECRETKEY
{临时 SECRET KEY}
_SCF_SERVER_PORT
28902
TENCENTCLOUD_RUNENV
SCF
USER_CODE_ROOT
/var/user/
TRIGGER_SRC
timer(使用定时触发器时)
PYTHONDONTWRITEBYTECODE
x
PYTHONPATH
/var/user:/opt
CLASSPATH
/var/runtime/java x:/var/runtime/java x/lib/*:/opt(x 为 8 或 11)
NODE_PATH
/var/user:/var/user/node_modules:/var/lang/node x/lib/node_modules:/opt:/opt/node_modules(x 为 16、14、12、10、8 或 6)
PHP_INI_SCAN_DIR
/var/user/php_extension:/opt/php_extension
_
/var/lang/python3/bin/python x(x 为 37、3 或 2)
PWD
/var/user
LOGNAME
qcloud
LANG
en_US.UTF8
LC_ALL
en_US.UTF8
USER
qcloud
HOME
/home/qcloud
PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SHELL
/bin/bash
SHLVL
3
LD_LIBRARY_PATH
/var/runtime/java x:/var/user:/opt(x 为 8 或 11)
HOSTNAME
{host id}
SCF_RUNTIME
函数运行时
SCF_FUNCTIONNAME
函数名
SCF_FUNCTIONVERSION
函数版本
TENCENTCLOUD_REGION
区域
TENCENTCLOUD_APPID
账号 APPID
TENCENTCLOUD_UIN
账号 UIN
TENCENTCLOUD_TZ
时区,当前为 UTC


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈