# 配置

WARNING

CLI 0.x 版本将被废弃,文档停止更新,请移步 v1 版本 (opens new window) 文档

在 CLI 配置文件中,functions 数组可以包含多个函数配置项,函数配置项包含了函数名称(name)函数运行配置(config)函数调用传入参数(params)等多项与函数相关的信息,影响着函数操作的行为表现。

# 函数配置项

一个简单的例子:

{
  // 关联环境 ID
  "envId": "dev-xxxx",
  // 函数配置
  "functions": [
    {
      // functions 文件夹下函数文件夹的名称,即函数名
      "name": "app",
      // 超时时间,单位:秒 S
      "timeout": 5,
      "runtime": "Nodejs10.15",
      "installDependency": true,
      "handler": "index.main"
    }
  ]
}

注意事项

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

下面为目前所有支持的配置项

配置项 是否必填 类型 描述
name String 云函数名称,即为函数部署后的名称
params Object/JSONObject CIL 调用云函数时的函数入参
triggers Array<CloudFunctionTrigger> 触发器配置
handler String 函数处理方法名称,名称格式支持“文件名称.函数名称”形式
ignore String/Array<String> 部署/更新云函数代码时的忽略文件,支持 glob 匹配规则
timeout Number 函数超时时间(1 - 60S)
envVariables Object 包含环境变量的键值对对象
vpc VPC 私有网络配置
runtime String 运行时环境配置,可选值: Nodejs8.9, Nodejs10.15 Php7, Java8
installDependency Boolean 是否云端安装依赖,目前仅支持 Node.js

注:runtime 默认为 Nodejs10.15,使用 Node.js 运行时可不填,使用 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",
      // 超时时间,单位:秒 S
      "timeout": 5,
      // 环境变量
      "envVariables": {
        "key": "value"
      },
      // 私有网络配置,如果不使用私有网络,可不配置
      "vpc": {
        // vpc id
        "vpcId": "vpc-xxx",
        // 子网 id
        "subnetId": "subnet-xxx"
      },
      // 运行时,目前可选运行包含:Nodejs8.9, Nodejs10.15, Php7, Java8
      // 此参数可以省略,默认为 Nodejs10.15
      "runtime": "Nodejs10.15",
      // 是否云端安装依赖,仅支持 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.js 和 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/**/*"
      ]
    }
  ]
}