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、运行时 runtimevpc网络以及 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/**/*'
            ]
        }
    ]
}