WARNING
# 当前文档已迁移到新的文档站点 (opens new window),此内容不再维护!
# 函数配置项
⚠️ 注意事项
所有 CloudBase CLI 命令均在配置文件所在目录执行。
在 CLI 配置文件中,functions 数组可以包含多个函数配置项,函数配置项包含了函数名称(name)
,函数运行配置(config)
,函数调用传入参数(params)
等多项与函数相关的信息,影响着函数操作的行为表现。
# 函数配置项
下面为目前所有支持的配置项
配置项 | 是否必填 | 类型 | 描述 |
---|---|---|---|
name | 是 | String | 云函数名称,即为函数部署到云开后的名称 |
config | 是 | CloudFunctionConfig | 云函数运行时配置 |
params | 否 | Object/JSONObject | CIL 调用云函数时的函数入参 |
triggers | 否 | Array<[CloudFunctionTrigger](#cloudfunctiontrigger)> | 函数处理方法名称,名称格式支持“文件名称.函数名称”形式 |
handler | 否 | String | 函数处理方法名称,名称格式支持“文件名称.函数名称”形式 |
ignore | 否 | String/Array<String> | 部署/更新云函数代码时的忽略文件,支持 glob 匹配规则 |
# CloudFunctionConfig
名称 | 是否必填 | 类型 | 描述 |
---|---|---|---|
timeout | 否 | Number | 函数超时时间(1 - 60S) |
envVariables | 否 | Object | 包含环境变量的键值对对象 |
vpc | 否 | VPC | 私有网络配置 |
runtime | 否 | String | 运行时环境配置,可选值: Nodejs8.9, Php7, Java8 |
installDependency | 否 | Boolean | 是否云端安装依赖,目前仅支持 Node.js |
注:runtime
默认为 Nodejs8.9
,使用 Node 运行时可不填,使用 Php 和 Java 则必填。
# CloudFunctionTrigger
名称 | 是否必填 | 类型 | 描述 |
---|---|---|---|
name | 是 | String | 触发器名称 |
type | 是 | String | 触发器类型,可选值:timer |
config | 是 | String | 触发器配置,在定时触发器下,config 格式为 cron 表达式 |
# VPC
名称 | 是否必填 | 类型 | 描述 |
---|---|---|---|
vpcId | 是 | String | VPC Id |
subnetId | 是 | String | VPC 子网 Id |
# 更新函数运行时配置
创建函数式,Cloudbase CLI 会为函数提供一些默认的配置,所以你不需要添加配置信息也可以直接部署函数。你也可以通过下面的命令修改函数的运行时配置
# 更新 app 函数的配置
cloudbase functions:config:update app
# 更新配置文件中所有函数的配置信息
cloudbase functions:config:update
目前支持修改的函数配置包含超时时间 timeout
、环境变量 envVariables
、运行时 runtime
,vpc
网络以及 installDependency
等选项。
CloudBase CLI 会从配置文件中读取函数的配置信息并更新,CloudBase CLI 会更新配置文件中存在的函数的所有配置,暂不支持指定更新单个配置选项。
# 配置项参考
{
// 关联环境 ID
envId: 'dev-xxxx',
// 函数配置
functions: [
{
// functions 文件夹下函数文件夹的名称,即函数名
name: 'app',
// 函数配置
config: {
// 超时时间,单位:秒 S
timeout: 5,
// 环境变量
envVariables: {
key: 'value'
},
// 私有网络配置,如果不使用私有网络,可不配置
vpc: {
// vpc id
vpcId: 'vpc-xxx',
// 子网 id
subnetId: 'subnet-xxx'
},
// 运行时,目前可选运行包含:Nodejs8.9, Php7, Java8
// 此参数可以省略,默认为 Nodejs8.9
runtime: 'Nodejs8.9',
// 是否云端安装依赖,仅支持 Node.js 项目
installDependency: true
},
// 函数触发器,说明见文档: https://cloud.tencent.com/document/product/876/32314
triggers: [
{
// name: 触发器的名字
name: 'myTrigger',
// type: 触发器类型,目前仅支持 timer (即定时触发器)
type: 'timer',
// config: 触发器配置,在定时触发器下,config 格式为 cron 表达式
config: '0 0 2 1 * * *'
}
],
// 函数处理入口,Node 和 PHP 项目可以省略,默认值为 index.main
// 因 Java 的 handler 配置较为特殊,所以当运行时为 Java 时,handler 不能省略
// 如:package.Class::mainHandler
handler: 'index.main',
// functions:invoke 本地触发云函数时的调用参数
params: {},
// 部署/更新云函数时忽略的文件
ignore: [
// 忽略 markdown 文件
'*.md',
// 忽略 node_modules 文件夹
'node_modules',
'node_modules/**/*'
]
}
]
}