跳到主要内容

云函数

listFunctions#

注意

此接口之后将会废弃,推荐使用 getFunctionList()

1. 接口描述#

接口功能:获取云函数列表

接口声明:listFunctions(limit, offset): Promise<Object>

2. 输入参数#

字段必填类型说明
limitNumber范围
offsetNumber偏移

3. 返回结果#

字段必填类型说明
RequestIDString请求唯一标识
TotalCountNumber总数
FunctionsArray函数列表
Functions[].FunctionIdString函数 ID
Functions[].FunctionNameString函数名称
Functions[].NamespaceString命名空间
Functions[].RuntimeString运行时间
Functions[].AddTimeString创建时间
Functions[].ModTimeString修改时间

4. 示例代码#

import CloudBase from '@cloudbase/manager-node'
const { functions } = new CloudBase({    secretId: 'Your SecretId',    secretKey: 'Your SecretKey',    envId: 'Your envId' // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {    let res = await functions.listFunctions(20, 0)    const { Functions } = res    for(let function in Functions) {        console.log(function)    }}
test()

getFunctionList#

1. 接口描述#

接口功能:获取云函数列表

接口声明:getFunctionList(limit, offset): Promise<Object>

提示

自 3.7.0 版本起支持此接口

2. 输入参数#

字段必填类型说明
limitNumber范围
offsetNumber偏移

3. 返回结果#

字段必填类型说明
RequestIDString请求唯一标识
TotalCountNumber总数
FunctionsArray函数列表
Functions[].FunctionIdString函数 ID
Functions[].FunctionNameString函数名称
Functions[].NamespaceString命名空间
Functions[].RuntimeString运行时间
Functions[].AddTimeString创建时间
Functions[].ModTimeString修改时间
Functions[].StatusString函数状态
Functions[].StatusDescString函数状态详情
Functions[].DescriptionString函数描述

4. 示例代码#

import CloudBase from '@cloudbase/manager-node'
const { functions } = new CloudBase({    secretId: 'Your SecretId',    secretKey: 'Your SecretKey',    envId: 'Your envId' // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {    let res = await functions.getFunctionList(20, 0)    const { Functions } = res    for(let function in Functions) {        console.log(function)    }}
test()

createFunction#

1. 接口描述#

接口功能:创建函数

接口声明:createFunction(funcParam: ICreateFunctionParam): Promise<Object>

⚠️ 本接口从 2.0.0 版本后,请求参数由( func: ICloudFunction, functionRootPath: string, force: boolean, base64Code: string ) 转换为 (funcParam: ICreateFunctionParam),属于不兼容变更

2. 输入参数#

ICreateFunctionParam#

字段必填类型说明
funcICloudFunction函数配置
functionRootPathString用户本地函数文件目录
forceBoolean是否覆盖同名函数
base64CodeString函数文件的 base64 编码
codeSecretString代码保护密钥
functionPathString函数所在文件夹路径

注:如果只更新函数代码,请使用 updateFunctionCode 接口。

注:如果存在同名云函数,并设置了 force 选项为 true,SDK 将会自动更新函数代码,更新函数配置并创建触发器。

注:createFunction 支持多种方式创建函数:

  1. 用户直接指定函数文件夹的路径
  2. 用户指定本地的存放函数文件夹的根目录 functionRootPath,根据 functionRootPath + name 确定函数文件路径
  3. 用户将函数代码包压缩为 zip 文件后进行 base64 转码,传入 base64Code 参数

注:ICloudFunctionConfig 为旧参数结构体

ICloudFunctionConfig#

字段必填类型说明
timeoutNumber函数超时时间
envVariablesObject包含环境变量的键值对对象
vpcIFunctionVPC私有网络配置
runtimeString运行时环境配置,可选值: Nodejs8.9, Nodejs10.15, Php7, Java8
installDependencyBoolean是否安装依赖,仅 Node.js 有效

ICloudFunction#

字段必填类型说明
nameString函数名称
timeoutNumber函数超时时间
envVariablesObject包含环境变量的键值对对象
vpcIFunctionVPC私有网络配置
runtimeString运行时环境配置,可选值: Nodejs8.9, Nodejs10.15, Php7, Java8
installDependencyBoolean是否安装依赖,仅 Node.js 有效
triggersArray of ICloudFunctionTrigger
handlerString函数入口
ignoreString 或 Array<String>上传函数代码时忽略的文件,以 Glob 模式匹配
isWaitInstallBoolean是否等待依赖安装完成
layersArray<ILayerItem>函数要关联的 Layer 版本列表,Layer 会按照在列表中顺序依次覆盖。

ILayerItem#

字段必填类型说明
nameStringlayer 名称
versionNumber版本号

注:handler 函数处理入口,Node.js 项目默认值为 index.main,入口文件只能在根目录,如 Node.js 项目的 index.main,指向的是 index.js 文件的 main 方法

注:如果使用在线安装依赖 Node.js 运行时 runtime 必须设置为 Nodejs10.15,且必须在入口文件同级目录设置 package.json,在线安装依赖暂不支持其他运行时 如果不使用在线安装依赖,Node.js 运行时无需填 runtime (默认Nodejs10.15),但使用 Php 和 Java 则必填runtime

ICloudFunctionTrigger#

字段必填类型说明
nameString触发器名称
typeString触发器类型,可选值:timer
configString触发器配置,在定时触发器下,config 格式为 cron 表达式

IFunctionVPC#

字段必填类型说明
vpcIdStringVPC Id
subnetIdStringVPC 子网 Id

⚠️ 请在测试时在云开发控制台确认函数创建并部署成功,有可能创建成功,createFunction 成功返回,但是部署失败,部署失败的原因通常为 handler 参数与源码包不对应。

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  await functions.createFunction({    func: {      // functions 文件夹下函数文件夹的名称,即函数名      name: "app",      // 超时时间      timeout: 5,      // 环境变量      envVariables: {        key: "value",        akey: "c"      },      runtime: "Nodejs10.15",      // 函数触发器,说明见文档: https://cloud.tencent.com/document/product/876/32314      triggers: [        {          // name: 触发器的名字          name: "myTrigger",          // type: 触发器类型,目前仅支持 timer (即定时触发器)          type: "timer",          // config: 触发器配置,在定时触发器下,config 格式为 cron 表达式          config: "0 0 2 1 * * *"        }      ],      layers: [        {          version: 1,          name: "layerName"        }      ]    },    functionRootPath: "",    force: true,    base64Code:      "UEsDBAoAAAAAAOdCBU8AAAAAAAAAAAAAAAAFAAAAZGlzdC9QSwMEFAAIAAgAkhkBTwAAAAAAAAAAAAAAAAgAAABpbmRleC5qc2WNMQrDMBRDd59Cmx0IuUEy9wadXfdTQlT/Yv+UQMndmxZv0ST0kOTXKqhW5mTeOdleWqwOzzhnjAjylmw9kmaT7WcieYtp6TBO+DgcOlhVykB9BH8RUnHVwrvvTvi/do7begPtIeSV7NEqu/sCUEsHCLKdLCxuAAAAqAAAAFBLAwQUAAgACADnQgVPAAAAAAAAAAAAAAAADQAAAGRpc3QvZGlzdC56aXAL8GZm4WIAgedOrP5gBpRgBdIpmcUl+gFAJSIMHEA4SZIRRQkHUElmXkpqhV5WcWqvIddhAxHn8vlOs2U5djoafWebG/s92Cnkf9L/KQ4n784Wy7+o8mXCk+taK8KepdyzvBkXtYbvvEV6D8enaTm2k9Imv01XquzOfGng98NCxioi9JRDLUu9YFDh1UO73/v92F/Wd7uK+a3ik6lvLmrt/s0U4M3OsWmujk4e0AUrgBjhRnRv8MK8AfKLXlVmAQBQSwcITXynOsAAAADyAAAAUEsBAi0DCgAAAAAA50IFTwAAAAAAAAAAAAAAAAUAAAAAAAAAAAAQAO1BAAAAAGRpc3QvUEsBAi0DFAAIAAgAkhkBT7KdLCxuAAAAqAAAAAgAAAAAAAAAAAAgAKSBIwAAAGluZGV4LmpzUEsBAi0DFAAIAAgA50IFT018pzrAAAAA8gAAAA0AAAAAAAAAAAAgAKSBxwAAAGRpc3QvZGlzdC56aXBQSwUGAAAAAAMAAwCkAAAAwgEAAAAA"  })}
test()

updateFunctionCode#

1. 接口描述#

接口功能:更新云函数代码

接口声明:updateFunctionCode(funcParam: IUpdateFunctionCodeParam): Promise<Object>

⚠️ 本接口从 2.0.0 版本后,请求参数由( func: ICloudFunction, functionRootPath: string, base64Code: string ) 转换为 (funcParam: IUpdateFunctionCodeParam),属于不兼容变更

2. 输入参数#

IUpdateFunctionCodeParam#

字段必填类型说明
funcICloudFunction函数配置
functionRootPathString用户本地函数文件目录
base64CodeString函数文件的 base64 编码
codeSecretString函数文件的 base64 编码

ICloudFunction 结构体

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  let res = await functions.updateFunctionCode({    func: {      // functions 文件夹下函数文件夹的名称,即函数名      name: "app"    },    functionRootPath: "",    base64Code:      "UEsDBAoAAAAAAOdCBU8AAAAAAAAAAAAAAAAFAAAAZGlzdC9QSwMEFAAIAAgAkhkBTwAAAAAAAAAAAAAAAAgAAABpbmRleC5qc2WNMQrDMBRDd59Cmx0IuUEy9wadXfdTQlT/Yv+UQMndmxZv0ST0kOTXKqhW5mTeOdleWqwOzzhnjAjylmw9kmaT7WcieYtp6TBO+DgcOlhVykB9BH8RUnHVwrvvTvi/do7begPtIeSV7NEqu/sCUEsHCLKdLCxuAAAAqAAAAFBLAwQUAAgACADnQgVPAAAAAAAAAAAAAAAADQAAAGRpc3QvZGlzdC56aXAL8GZm4WIAgedOrP5gBpRgBdIpmcUl+gFAJSIMHEA4SZIRRQkHUElmXkpqhV5WcWqvIddhAxHn8vlOs2U5djoafWebG/s92Cnkf9L/KQ4n784Wy7+o8mXCk+taK8KepdyzvBkXtYbvvEV6D8enaTm2k9Imv01XquzOfGng98NCxioi9JRDLUu9YFDh1UO73/v92F/Wd7uK+a3ik6lvLmrt/s0U4M3OsWmujk4e0AUrgBjhRnRv8MK8AfKLXlVmAQBQSwcITXynOsAAAADyAAAAUEsBAi0DCgAAAAAA50IFTwAAAAAAAAAAAAAAAAUAAAAAAAAAAAAQAO1BAAAAAGRpc3QvUEsBAi0DFAAIAAgAkhkBT7KdLCxuAAAAqAAAAAgAAAAAAAAAAAAgAKSBIwAAAGluZGV4LmpzUEsBAi0DFAAIAAgA50IFT018pzrAAAAA8gAAAA0AAAAAAAAAAAAgAKSBxwAAAGRpc3QvZGlzdC56aXBQSwUGAAAAAAMAAwCkAAAAwgEAAAAA"  })  console.log(res)}
test()

updateFunctionConfig#

1. 接口描述#

接口功能:更新云函数配置

接口声明:updateFunctionConfig(funcParam: ICloudFunction): Promise<Object>

⚠️ 本接口从 2.0.0 版本后,请求参数由( name: string, config: ICloudFunctionConfig ) 转换为 (funcParam: ICloudFunction),属于不兼容变更

2. 输入参数#

字段必填类型说明
funcParamICloudFunction函数配置

ICloudFunction 结构体

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  let res = await functions.updateFunctionConfig({    name: "app",    timeout: 6  })  console.log(res)}
test()

deleteFunction#

1. 接口描述#

接口功能:删除云函数

接口声明:deleteFunction(name: string): Promise<Object>

2. 输入参数#

字段必填类型说明
nameString函数名称

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  await functions.deleteFunction("functionName")}
test()

getFunctionDetail#

1. 接口描述#

接口功能:获取云函数详情

接口声明:getFunctionDetail(name: string, codeSecret?: string): Promise<Object>

2. 输入参数#

字段必填类型说明
nameString函数名称
codeSecretString代码保护密钥

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
FunctionNameString函数名称
NamespaceString命名空间
RuntimeString运行时
HandlerString函数入口
DescriptionString函数的描述信息
ModTimeString函数修改时间
EnvironmentObject函数的环境变量
Environment.VariablesArray环境变量数组
Environment.Variables[].KeyString变量的 Key
Environment.Variables[].ValueString变量的 Value
MemorySizeNumber函数的最大可用内存
TimeoutNumber函数的超时时间
CodeInfoString函数代码
TriggersArray<ITrigger>函数的触发器列表

ITrigger#

字段必填类型说明
TypeString触发器类型
TriggerNameString触发器名称
TriggerDescString触发器详细配置
ModTimeTimestamp触发器最后修改时间
AddTimeTimestamp触发器创建时间
AvailableStatusString触发器状态
EnableNumber使能开关
CustomArgumentString客户自定义参数

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  let res = await functions.getFunctionDetail("functionName")  console.log(res) // 输出云函数详情}
test()

invokeFunction#

1. 接口描述#

接口功能:调用云函数

接口声明:invokeFunction(name: string, params: object): Promise<Object>

2. 输入参数#

字段必填类型说明
functionNameString函数名称
paramsObject可选参数 用户调用函数时的入参

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
FunctionRequestIdString此次函数执行的 ID
DurationNumber表示执行函数的耗时,单位是毫秒,异步调用返回为空
BillDurationNumber表示函数的计费耗时,单位是毫秒,异步调用返回为空
MemUsageNumber执行函数时的内存大小,单位为 Byte,异步调用返回为空
InvokeResultNumber0 为正确,异步调用返回为空
RetMsgString表示执行函数的返回,异步调用返回为空
ErrMsgString表示执行函数的错误返回信息,异步调用返回为空
LogString表示执行过程中的日志输出,异步调用返回为空

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.invokeFunction("app", {    a: 1  })  console.log(res.RetMsg)}
test()

getFunctionLogs#

注意

此接口将不再返回具体的日志详情,请基于接口返回的 requestId,调用 searchClsLog 函数查询日志详情。

1. 接口描述#

接口功能:获取云函数调用日志

接口声明:getFunctionLogs(options: IFunctionLogOptions): Promise<Object>

2. 输入参数#

字段必填类型说明
optionsIFunctionLogOptions日志查询选项

IFunctionLogOptions#

字段必填类型说明
nameString函数名词
offsetNumber数据的偏移量,Offset+Limit 不能大于 10000
limitNumber返回数据的长度,Offset+Limit 不能大于 10000
orderString以升序还是降序的方式对日志进行排序,可选值 desc 和 asc
orderByString根据某个字段排序日志,支持以下字段:function_name, duration, mem_usage, start_time
startTimeString查询的具体日期,例如:2017 - 05 - 16 20:00:00,只能与 EndTime 相差一天之内
endTimeString查询的具体日期,例如:2017 - 05 - 16 20:59:59,只能与 StartTime 相差一天之内
requestIdString执行该函数对应的 requestId

3. 返回结果#

字段必填类型说明
RequestIdString请求唯一标识
TotalCountString函数日志的总数
Data[]Array运行函数的返回
Data[].RequestIdString执行该函数对应的 requestId
Data[].FunctionNameString函数的名称
Data[].RetCodeNumber函数执行结果,如果是 0 表示执行成功,其他值表示失败
Data[].InvokeFinishedNumber函数调用是否结束,如果是 1 表示执行结束,其他值表示调用异常
Data[].StartTimeString函数开始执行时的时间点
Data[].DurationNumber表示执行函数的耗时,单位是毫秒,异步调用返回为空
Data[].BillDurationNumber表示函数的计费耗时,单位是毫秒,异步调用返回为空
Data[].MemUsageNumber执行函数时的内存大小,单位为 Byte,异步调用返回为空
Data[].RetMsgString表示执行函数的返回,异步调用返回为空

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const manager = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
const { functions } = manager
async function test() {  const logs = await functions.getFunctionLogs({ name: "app" })  const { Data } = logs  for (let item in Data) {    console.log(item.RequestId)    // 基于 requestId 查 cls 日志    const clsLogRes = await manager.commonService().call({      Action: "SearchClsLog",      Param: {        EnvId: cloudBaseConfig.envId,        StartTime: "2021-06-11 11:06:20", // 开始时间        EndTime: "2021-06-30 11:06:20", // 截止时间        Limit: 100,        Sort: "asc",        QueryString: `requestId:${item.RequestId}`      }    })    console.log("clsLogRes", clsLogRes)  }}
test()

copyFunction#

1. 接口描述#

接口功能:拷贝云函数

接口声明:copyFunction(name, newFunctionName, targetEnvId, force): Promise<Object>

2. 输入参数#

字段必填类型说明
nameString原函数名
newFunctionNameString新函数名
targetEnvIdString新环境 ID(跨环境拷贝函数时填写)
forceBoolean是否覆盖同名函数

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  await functions.copyFunction()}test()

createFunctionTriggers#

1. 接口描述#

接口功能:创建云函数触发器

接口声明:createFunctionTriggers(name: string, triggers: ICloudFunctionTrigger[]): Promise<Object>

2. 输入参数#

字段必填类型说明
nameString函数名
triggersICloudFunctionTrigger触发器配置数组

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  await functions.createFunctionTriggers("app", [    {      // name: 触发器的名字      name: "newTrigger",      // type: 触发器类型,目前仅支持 timer (即定时触发器)      type: "timer",      // config: 触发器配置,在定时触发器下,config 格式为 cron 表达式      config: "0 0 2 1 * * *"    }  ])}
test()

deleteFunctionTrigger#

1. 接口描述#

接口功能:删除云函数触发器

接口声明:deleteFunctionTrigger(name: string, triggerName: string): Promise<Object>

2. 输入参数#

字段必填类型说明
nameString函数名
triggerNameString触发器名

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  await functions.deleteFunctionTrigger("app", "newTrigger")}
test()

getFunctionDownloadUrl#

1. 接口描述#

接口功能:获取云函数代码下载链接

接口声明:getFunctionDownloadUrl(functionName:string, codeSecret?: string): Promise<Object>

2. 输入参数#

字段必填类型说明
functionNameString函数名
codeSecretString代码保护密钥

3. 返回结果#

字段必填类型说明
RequestIDString请求唯一标识
UrlString函数代码下载链接
CodeSha256String函数的 SHA256 编

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.getFunctionDownloadUrl("sum")  const { Url } = res  console.log(Url)}
test()

updateFunctionIncrementalCode#

1. 接口描述#

接口功能:增量上传云函数代码

接口声明:updateFunctionIncrementalCode(funcParam: IUpdateFunctionIncrementalCodeParam): Promise<Object>

2. 输入参数#

字段必填类型说明
funcParamIUpdateFunctionIncrementalCodeParam 结构体增量更新函数项

IUpdateFunctionIncrementalCodeParam 结构体#

字段必填类型说明
funcICloudFunction函数配置项,针对增量更新,目前只支持 name,runTime 字段设置 d
functionRootPathString用户本地函数文件目录
deleteFilesArray<String>要删除的文件,目录的列表,使用相对路径, 删除目录时必须以/结尾
addFilesString新增或修改的文件/目录 对应的 glob 匹配模式,目前支持 新增或修改 单个文件 或单个文件夹

⚠️ 填写路径时请注意 Linux 及 Windows 下的区别('/'与'\') ⚠️ 增量更新 package.json 并不会触发依赖安装

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  // 本地存在sum 函数文件夹,新增test/index.js 文件 (index.js相对路径为 sum/test/index.js)  await functions.updateFunctionIncrementalCode({    func: {      name: "sum",      runTime: "Nodejs10.15"    },    addFiles: "test/index.js"  })
  // 本地存在sum 函数文件夹,新增test/目录 (test相对路径为 sum/test/)  await functions.updateFunctionIncrementalCode({    func: {      name: "sum",      runTime: "Nodejs10.15"    },    addFiles: "test/*" // 匹配test目录下所有文件, 这里采用 glob 匹配模式 而非相对路径  })
  // 本地存在sum 函数文件夹,删除test/index.js (index.js相对路径为 sum/test/index.js)  await functions.updateFunctionIncrementalCode({    func: {      name: "sum",      runTime: "Nodejs10.15"    },    deleteFiles: ["test/index.js"]  })
  // 本地存在sum 函数文件夹,删除test/ 目录 (test相对路径为 sum/test/)  await functions.updateFunctionIncrementalCode({    func: {      name: "sum",      runTime: "Nodejs10.15"    },    deleteFiles: ["test/"] // 删除目录时必须以 /结尾  })}
test()

createLayer#

1. 接口描述#

接口功能:发布层版本

接口声明:createLayer(options: IFunctionLayerOptions): Promise<Object>

2. 输入参数#

字段必填类型说明
optionsIFunctionLayerOptions 结构体请求项

IFunctionLayerOptions 结构体#

字段必填类型说明
contentPathString可以指定 contentPath 为文件夹 或者 ZIP 文件路径
base64ContentString文件的 base64 编码
nameString层名称,支持 26 个英文字母大小写、数字、连接符和下划线,第一个字符只能以字母开头,最后一个字符不能为连接符或者下划线,名称长度 1-64
runtimesArray<String>层适用的运行时,可多选,可选的值对应函数的 Runtime 可选值。
descriptionString层版本描述
licenseInfoString层的软件许可证

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID
LayerVersionNumber层版本号

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.createLayer({    name: layerName,    contentPath: "./test/functions/luke/",    runtimes: ["Nodejs10.15"]  })  console.log(res.LayerVersion)}
test()

deleteLayerVersion#

1. 接口描述#

接口功能:删除层版本

接口声明:deleteLayerVersion(options: ILayerOptions): Promise<Object>

2. 输入参数#

字段必填类型说明
optionsILayerOptions 结构体请求项

ILayerOptions 结构体#

字段必填类型说明
nameString层名称
versionNumber版本号

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.deleteLayerVersion({    name: layerName,    version: 1  })  console.log(res.RequestId)}
test()

listLayerVersions#

1. 接口描述#

接口功能:获取层版本列表

接口声明:listLayerVersions(options: IVersionListOptions): Promise<Object>

2. 输入参数#

字段必填类型说明
optionsIVersionListOptions 结构体请求项

IVersionListOptions 结构体#

字段必填类型说明
nameString层名称
runtimesArray<String>版本号

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID
LayerVersionsArray<ILayerVersionInfo>文件层详情

ILayerVersionInfo 结构体#

字段必填类型说明
CompatibleRuntimesArray<String>版本适用的运行时
AddTimeString创建时间
DescriptionString版本描述
LicenseInfoString许可证信息
LayerVersionNumber版本号
LayerNameString层名称
StatusString层的具体版本当前状态, Active 正常, Publishing 发布中,PublishFailed 发布失败,Deleted 已删除

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.listLayerVersions({    name: layerName  })  console.log(res.LayerVersions)}
test()

listLayers#

1. 接口描述#

接口功能:获取层列表

接口声明:listLayers(options: ILayerListOptions): Promise<Object>

2. 输入参数#

字段必填类型说明
optionsILayerListOptions 结构体请求项

ILayerListOptions 结构体#

字段必填类型说明
offsetNumber偏移
limitNumber限制数
runtimeString适配的运行时
searchKeyString查询 key,模糊匹配名称

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID
TotalCountNumber层总数
LayersArray<ILayerVersionInfo>文件层详情

ILayerVersionInfo 结构体#

字段必填类型说明
CompatibleRuntimesArray<String>版本适用的运行时
AddTimeString创建时间
DescriptionString版本描述
LicenseInfoString许可证信息
LayerVersionNumber版本号
LayerNameString层名称
StatusString层的具体版本当前状态, Active 正常, Publishing 发布中,PublishFailed 发布失败,Deleted 已删除

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.listLayers({})  console.log(res.Layers)}
test()

getLayerVersion#

1. 接口描述#

接口功能:获取层版本详细信息

接口声明:getLayerVersion(options: ILayerOptions): Promise<Object>

2. 输入参数#

字段必填类型说明
optionsILayerOptions 结构体请求项

ILayerOptions 结构体#

字段必填类型说明
nameString层名称
versionNumber版本号

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID
CompatibleRuntimesArray<String>适配的运行时
CodeSha256String层中版本文件的 SHA256 编码
LocationString层中版本文件的下载地址
AddTimeString版本的创建时间
DescriptionString版本的描述
LicenseInfoString许可证信息
LayerVersionNumber版本号
LayerNameString层名称
StatusString层的具体版本当前状态, Active 正常, Publishing 发布中,PublishFailed 发布失败,Deleted 已删除

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const res = await functions.getLayerVersion({ name: layerName, version: 2 })  console.log(res.LayerVersion)}
test()

setProvisionedConcurrencyConfig#

1. 接口描述#

接口功能:设置函数预置并发

接口声明:setProvisionedConcurrencyConfig(options: ISetProvisionedConcurrencyConfig): Promise<Object>

2. 输入参数#

ISetProvisionedConcurrencyConfig 结构体#

字段必填类型说明
functionNameString函数名
qualifierString函数版本名
versionProvisionedConcurrencyNumNumber当前版本预置并发数

3. 返回结果#

字段必填类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const setProvisionedConcurrencyConfigRes =    await functions.setProvisionedConcurrencyConfig({      functionName: "sum",      qualifier: "1", // 版本1      versionProvisionedConcurrencyNum: 10 // 设置10并发    })  console.log(setProvisionedConcurrencyConfigRes)}
test()

getProvisionedConcurrencyConfig#

1. 接口描述#

接口功能:查询函数预置并发

接口声明:getProvisionedConcurrencyConfig(options: IGetProvisionedConcurrencyConfig): Promise<Object>

2. 输入参数#

IGetProvisionedConcurrencyConfig 结构体#

字段必填类型说明
functionNameString函数名
qualifierString函数版本名,不填则查询该函数所有版本的预置并发信息

3. 返回结果#

字段类型说明
RequestIdString请求 ID
UnallocatedConcurrencyNumNumber该函数剩余可配置的预置并发数。
AllocatedArray<IVersionProvisionedConcurrencyInfo>函数已预置的并发配置详情。

IVersionProvisionedConcurrencyInfo#

字段类型说明
AllocatedProvisionedConcurrencyNumNumber设置的预置并发数。
AvailableProvisionedConcurrencyNumNumber已完成设置的并发数
StatusString预置任务状态,Done 表示已完成,InProgress 表示进行中,Failed 表示部分或全部失败。
StatusReasonString任务状态说明
QualifierString版本号

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const getProvisionedConcurrencyConfigRes =    await functions.getProvisionedConcurrencyConfig({      functionName: "sum",      qualifier: "1" // 版本1    })
  console.log(getProvisionedConcurrencyConfigRes)}
test()

deleteProvisionedConcurrencyConfig#

1. 接口描述#

接口功能:删除函数预置并发

接口声明:deleteProvisionedConcurrencyConfig(options: IDeleteProvisionedConcurrencyConfig): Promise<Object>

2. 输入参数#

IDeleteProvisionedConcurrencyConfig 结构体#

字段必填类型说明
functionNameString函数名
qualifierString函数版本名,不填则查询该函数所有版本的预置并发信息

3. 返回结果#

字段类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const deleteProvisionedConcurrencyConfigRes =    await functions.deleteProvisionedConcurrencyConfig({      functionName: "sum",      qualifier: "1" // 版本1    })
  console.log(deleteProvisionedConcurrencyConfigRes)}
test()

publishVersion#

1. 接口描述#

接口功能:发布函数新版本

接口声明:publishVersion(options: IPublishVersionParams): Promise<Object>

2. 输入参数#

IPublishVersionParams 结构体#

字段必填类型说明
functionNameString函数名
descriptionString版本描述

3. 返回结果#

字段类型说明
RequestIdString请求 ID
FunctionVersionString函数版本
CodeSizeNumber代码大小
MemorySizeNumber最大可用内存
HandlerString函数入口
TimeoutNumber函数的超时时间
RuntimeString函数的运行环境
NamespaceString函数的命名空间

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const createNewVersionRes = await functions.publishVersion({    functionName: "sum",    description: "test" // 给sum函数创建新版本,描述为test  })
  console.log(createNewVersionRes)}
test()

listVersionByFunction#

1. 接口描述#

接口功能:查询函数版本列表

接口声明:listVersionByFunction(options: IListFunctionVersionParams): Promise<Object>

2. 输入参数#

IListFunctionVersionParams 结构体#

字段必填类型说明
functionNameString函数名
offsetNumber数据偏移量,默认值为 0
limitNumber返回数据长度,默认值为 20
orderNumber以升序还是降序的方式返回结果,可选值 ASC 和 DESC
orderByNumber根据哪个字段进行返回结果排序,支持以下字段:AddTime, ModTime

3. 返回结果#

字段类型说明
RequestIdString请求 ID
TotalCountString函数版本总数。
FunctionVersionArray<String>函数版本名列表
VersionsArray<IFunctionVersion>函数版本列表。

IFunctionVersion#

字段类型说明
VersionString函数版本名
DescriptionString版本描述信息
AddTimeString创建时间
ModTimeString修改时间
StatusString版本状态

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const functionVersions = await functions.listVersionByFunction({    functionName: "sum"  })  console.log(functionVersions)}
test()

updateFunctionAliasConfig#

1. 接口描述#

接口功能:更新函数版本配置(别名配置)

接口声明:updateFunctionAliasConfig(options: IUpdateFunctionAliasConfig): Promise<Object>

2. 输入参数#

IUpdateFunctionAliasConfig 结构体#

字段必填类型说明
functionNameString函数名
nameString别名名称,默认设置为 '$DEFAULT' 即可
functionVersionString别名主版本,默认设置为 '$LATEST' 即可
descriptionString别名描述
routingConfigIRoutingConfig路由配置

IRoutingConfig#

字段必填类型说明
AddtionVersionMatchsArray<IVersionMatch>规则路由附加版本

IVersionMatch#

字段必填类型说明
VersionString函数版本名称
KeyString匹配规则的 key,调用时通过传 key 来匹配规则路由到指定版本,此处默认填 'invoke.headers.X-Tcb-Route-Key'
MethodString匹配方式,默认为 'range'
ExpressionStringrange 匹配规则要求:需要为开区间或闭区间描述 (a,b) [a,b],其中 a、b 均为整数
warning

此处仅支持两种配置方式,1. 指定单版本及对应流量比例,其余流量均打入 $LATEST 版本;2. 指定两个版本分配全部流量,示例如下所示

3. 返回结果#

字段类型说明
RequestIdString请求 ID

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  const updateFunctionAliasConfigRes1 =    await functions.updateFunctionAliasConfig({      functionName: "sum",      name: "$DEFAULT",      functionVersion: "$LATEST",      routingConfig: {        AddtionVersionMatchs: [          {            Expression: "[0,3)", // 设置版本 1 的流量比例为 3%,其余 97% 流量指向 latest 版本            Key: "invoke.headers.X-Tcb-Route-Key",            Method: "range",            Version: "1"          }        ]      }    })  console.log("updateFunctionAliasConfig1", updateFunctionAliasConfigRes1)
  const updateFunctionAliasConfigRes2 =    await functions.updateFunctionAliasConfig({      functionName: "sum",      name: "$DEFAULT",      functionVersion: "$LATEST",      routingConfig: {        AddtionVersionMatchs: [          {            Expression: "[0,10)", // 设置版本 1 的流量比例为 10%            Key: "invoke.headers.X-Tcb-Route-Key",            Method: "range",            Version: "1"          },          {            Expression: "[10,100)", // 设置版本 2 的流量比例为 90%            Key: "invoke.headers.X-Tcb-Route-Key",            Method: "range",            Version: "2"          }        ]      }    })  console.log("updateFunctionAliasConfigRes2", updateFunctionAliasConfigRes2)}
test()

getFunctionAlias#

1. 接口描述#

接口功能:查询函数版本配置(别名配置)

接口声明:getFunctionAlias(options: IGetFunctionAlias): Promise<Object>

2. 输入参数#

IGetFunctionAlias 结构体#

字段必填类型说明
functionNameString函数名
nameString别名名称,默认设置为 '$DEFAULT' 即可

3. 返回结果#

字段类型说明
RequestIdString请求 ID
FunctionVersionString别名指向的主版本
NameString别名的名称
RoutingConfigIRoutingConfig别名的路由信息
DescriptionString描述信息
AddTimeString创建时间
ModTimeString修改时间

4. 示例代码#

import CloudBase from "@cloudbase/manager-node"
const { functions } = new CloudBase({  secretId: "Your SecretId",  secretKey: "Your SecretKey",  envId: "Your envId" // 云开发环境ID,可在腾讯云云开发控制台获取})
async function test() {  // 查询流量配置比例  const getVersionConfigRes = await functions.getFunctionAlias({    name: "$DEFAULT",    functionName: "sum"  })
  console.log("getVersionConfigRes", JSON.stringify(getVersionConfigRes))}
test()