详情页标题前

腾讯云云函数(SCF)环境变量-云淘科技

详情页1

在创建或编辑云函数时,您可以通过修改配置中的环境变量,为云函数的运行环境增加、删除或修改环境变量。在配置环境变量后,环境变量将在函数运行时配置到所在的操作系统环境中。函数代码可以使用读取系统环境变量的方式来获取到设置的具体值并在代码中使用。

新增环境变量

使用控制台新增环境变量

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

本地新增环境变量

1. 本地开发时,在 serverless.yml 文件中找到需要配置环境变量的函数,添加 Environment 配置项。如下所示:

component: scf # (必选) 组件名称,在该实例中为scfname: 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

2. 保存 serverless.yml 文件,并在命令行窗口中执行 scf deploy 命令部署到云端。

查看环境变量

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

使用环境变量

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

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

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

var value = process.env.keyconsole.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 stringvalue = 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(事件函数在 Node.js 16.13环境下有该内置变量,Web 函数则无该变量)
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



官网1折活动,限时活动,即将结束,速速收藏
同尘科技腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利。同意关联立享优惠

转转请注明出处:https://www.yunxiaoer.com/149562.html

(0)
上一篇 2023年12月9日
下一篇 2023年12月9日
详情页2

相关推荐

  • 腾讯云裸金属云服务器关于多款在售实例上线官网优惠公告

    腾讯云裸金属云服务器多款热门在售实例于2021年12月6日上线无门槛官网优惠。本次优惠活动覆盖国内多个主流地域及可用区,优惠幅度因实例规格而异,最高可优惠40%。 覆盖范围 说明 地域 北京、上海、广州、重庆、南京、成都等 实例类型 标准型 BMS4、高 IO 型 BMI5、大数据型 BMD3、大数据型 BMD2、GPU 计算型 HCCG5v 调整详情 最新…

    腾讯云 2023年12月9日
  • 阿里云大数据开发治理平台 DataWorks迁移ECS自建MySQL数据库至MaxCompute-云淘科技

    本文为您介绍如何使用独享数据集成资源,将您在ECS上自建的MySQL数据库中的数据,迁移到MaxCompute。 前提条件 已拥有至少一个绑定专有网络VPC的ECS(请勿使用经典网络),并在ECS上安装好MySQL数据库,数据库中已创建好用户和测试数据。本文中ECS自建MySQL的测试数据创建语句如下。 CREATE TABLE IF NOT EXISTS …

    2023年12月10日
  • 腾讯云云点播如何测试生成的防盗链

    简介 云点播提供了 防盗链 功能,开发者可以根据实际需要,对视频播放 URL 使用的域名合理设置防盗链,实现对用户视频播放行为的控制。然而,不经测试就对使用中的域名设置防盗链有以下风险:可能导致现网用户播放失败。可能未达到播放控制的效果。例如,开发者希望对视频播放 URL 的有效期进行控制,就需要启用 KEY 防盗链:如果生成的防盗链中签名参数sign计算错…

    2023年12月9日
  • 腾讯云容器服务Annotation 说明同尘科技

    本文介绍超级节点特有的 Annotation 与示例,该 Annotation 针对 TKE 标准集群和 TKE Serverless 集群内超级节点上运行的 Pod 生效。 Annotation 使用方法 工作负载里添加 Pod 注解 本文所说明的注解均为在 Pod 级别添加注解,通常用户使用的是工作负载而不是裸 Pod。本文以在 Deployment 上…

    腾讯云 2023年12月9日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 腾讯云对象存储恢复归档对象

    简介 本文档提供关于恢复归档对象操作相关的 API 概览以及 SDK 示例代码。 API 操作名 操作描述 POST Object restore 恢复归档对象 将归档类型的对象取回访问 恢复归档对象 功能说明 POST Object restore 接口可以对一个通过 COS 归档为 archive 类型的对象进行恢复,恢复出的可读取对象是临时的,您可以设…

    腾讯云 2023年12月9日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。