跳到主要内容

云函数配置

配置文件说明

在 CLI 配置文件 cloudbaserc.json 中,functions 数组包含多个函数配置项,影响函数的部署和运行行为。

配置项示例

一个简单的配置示例:

{
"envId": "dev-xxxx",
"functions": [
{
"name": "app",
"timeout": 5,
"runtime": "Nodejs10.15",
"installDependency": true,
"handler": "index.main"
}
]
}
配置扁平化

从 0.6.0 版本起,为了简化使用,我们对 functions 选项中的 config 选项进行了扁平化处理,原有 config 选项中的所有配置项都可以直接写在 functions 选项中。

配置项说明

配置项是否必填类型描述
nameString云函数名称,即为函数部署后的名称
paramsObjectCLI 调用云函数时的函数入参
triggersArray触发器配置,详见触发器配置
handlerString函数处理方法名称,格式: 文件名.函数名
ignoreString/Array部署时忽略的文件,支持 glob 匹配规则
timeoutNumber函数超时时间(1-60 秒)
envVariablesObject环境变量键值对
vpcObject私有网络配置,详见VPC 配置
runtimeString运行时环境,可选值见下表
memorySizeNumber函数内存,可选: 128、256、512、1024、2048 MB
installDependencyBoolean是否云端安装依赖(仅支持 Node.js)
codeSecretString代码加密密钥,36 位大小写字母和数字

运行时环境

支持的 runtime 值:

  • Nodejs18.15
  • Nodejs16.13
  • Nodejs14.18
  • Nodejs12.16
  • Nodejs10.15
  • Php8.0
  • Php7.4
  • Php7.2
  • Python3.9
  • Python3.7
  • Python3.6
  • Python2.7
  • Golang1
  • Java8
提示
  • Node.js 运行时默认为 Nodejs10.15,可不填
  • 使用 Php 和 Java 运行时则必须填写
  • 启用代码加密后,将无法在小程序 IDE、腾讯云控制台中查看云函数代码

触发器配置

触发器配置项 CloudFunctionTrigger:

名称是否必填类型描述
nameString触发器名称
typeString触发器类型,目前仅支持 timer
configString触发器配置,在定时触发器下为 Cron 表达式

VPC 配置

私有网络配置项:

名称是否必填类型描述
vpcIdStringVPC Id
subnetIdStringVPC 子网 Id

更新函数配置

使用 tcb fn config update 命令更新函数的运行时配置:

# 更新指定函数的配置
tcb fn config update <functionName>

# 更新配置文件中所有函数的配置
tcb fn config update

说明:

  • CLI 会从 cloudbaserc.json 中读取函数配置并更新
  • 会更新配置文件中存在的所有配置项,暂不支持指定更新单个配置项
  • 支持修改的配置包括: 超时时间、环境变量、运行时、VPC 网络、依赖安装等

完整配置示例

{
"envId": "dev-xxxx",
"functions": [
{
"name": "app",
"timeout": 5,
"envVariables": {
"key": "value"
},
"vpc": {
"vpcId": "vpc-xxx",
"subnetId": "subnet-xxx"
},
"runtime": "Nodejs10.15",
"installDependency": true,
"memorySize": 256,
"triggers": [
{
"name": "myTrigger",
"type": "timer",
"config": "0 0 2 1 * * *"
}
],
"handler": "index.main",
"params": {},
"ignore": [
"*.md",
"node_modules",
"node_modules/**/*"
]
}
]
}

注意事项

  1. 环境变量: 部署时会完全覆盖线上配置,非增量合并
  2. Java Handler: Java 运行时的 handler 不能省略,格式如: package.Class::mainHandler
  3. Node.js 默认值: Node.js 和 PHP 项目的 handler 可以省略,默认为 index.main
  4. 忽略文件: 建议忽略 node_modules.git 等目录减小部署包体积