云函数配置
配置文件说明
在 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 选项中。
配置项说明
| 配置项 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
name | 是 | String | 云函数名称,即为函数部署后的名称 |
params | 否 | Object | CLI 调用云函数时的函数入参 |
triggers | 否 | Array | 触发器配置,详见触发器配置 |
handler | 否 | String | 函数处理方法名称,格式: 文件名.函数名 |
ignore | 否 | String/Array | 部署时忽略的文件,支持 glob 匹配规则 |
timeout | 否 | Number | 函数超时时间(1-60 秒) |
envVariables | 否 | Object | 环境变量键值对 |
vpc | 否 | Object | 私有网络配置,详见VPC 配置 |
runtime | 否 | String | 运行时环境,可选值见下表 |
memorySize | 否 | Number | 函数内存,可选: 128、256、512、1024、2048 MB |
installDependency | 否 | Boolean | 是否云端安装依赖(仅支持 Node.js) |
codeSecret | 否 | String | 代码加密密钥,36 位大小写字母和数字 |
运行时环境
支持的 runtime 值:
Nodejs18.15Nodejs16.13Nodejs14.18Nodejs12.16Nodejs10.15Php8.0Php7.4Php7.2Python3.9Python3.7Python3.6Python2.7Golang1Java8
提示
- Node.js 运行时默认为
Nodejs10.15,可不填 - 使用 Php 和 Java 运行时则必须填写
- 启用代码加密后,将无法在小程序 IDE、腾讯云控制台中查看云函数代码
触发器配置
触发器配置项 CloudFunctionTrigger:
| 名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
name | 是 | String | 触发器名称 |
type | 是 | String | 触发器类型,目前仅支持 timer |
config | 是 | String | 触发器配置,在定时触发器下为 Cron 表达式 |
VPC 配置
私有网络配置项:
| 名称 | 是否必填 | 类型 | 描述 |
|---|---|---|---|
vpcId | 是 | String | VPC Id |
subnetId | 是 | String | VPC 子网 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/**/*"
]
}
]
}
注意事项
- 环境变量: 部署时会完全覆盖线上配置,非增量合并
- Java Handler: Java 运行时的 handler 不能省略,格式如:
package.Class::mainHandler - Node.js 默认值: Node.js 和 PHP 项目的 handler 可以省略,默认为
index.main - 忽略文件: 建议忽略
node_modules、.git等目录减小部署包体积