跳到主要内容

云函数

getFunctionList​

1. 接口描述​

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

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

提示

自 3.7.0 版本起支持此接口

2. 输入参数​

字段必填类型说明
limit否Number范围
offset否Number偏移

3. 返回结果​

字段必填类型说明
RequestID是String请求唯一标识
TotalCount是Number总数
Functions是Array函数列表
Functions[].FunctionId是String函数 ID
Functions[].FunctionName是String函数名称
Functions[].Namespace是String命名空间
Functions[].Runtime是String运行时间
Functions[].AddTime是String创建时间
Functions[].ModTime是String修改时间
Functions[].Status是String函数状态
Functions[].StatusDesc是String函数状态详情
Functions[].Description是String函数描述

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​

字段必填类型说明
func是ICloudFunction函数配置
functionRootPath否String用户本地函数文件目录
force否Boolean是否覆盖同名函数,默认为 false
base64Code否String函数文件的 base64 编码
codeSecret否String代码保护密钥
functionPath否String函数所在文件夹路径
deployMode否String代码部署方式:cos、zip 或 image;默认 cos(zip 限制 1.5MB)
code否IFunctionCode直接传入 Code(如 CosBucketName(不包含 -appid 后缀)/ CosObjectName / ZipFile / ImageConfig)

💡 上传方式说明:默认使用 cos,可指定 zip(限制 1.5MB)或 image(镜像部署)。

💡 参数优先级说明:deployMode=image > 显式 code > 本地打包参数(base64Code / functionPath / functionRootPath)。

💡 冲突处理说明:当同时传入 code 与本地打包参数时,将优先使用 code。

💡 镜像部署说明:使用 deployMode=image 或 code.ImageConfig 时,需提供 ImageUri。

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

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

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

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

IFunctionCode​

字段必填类型说明
CosBucketName否StringCOS 存储桶名称(不包含 -appid 后缀)
CosObjectName否StringCOS 对象路径
CosBucketRegion否StringCOS 存储桶地域
TempCosObjectName否String临时 COS 对象路径(TempCos)
ZipFile否StringZIP 包的 base64 编码内容
CosTimestamp否String上传到云开发 COS 后返回的时间戳
ImageConfig否IFunctionImageConfig镜像配置(镜像部署时使用)

IFunctionImageConfig​

字段必填类型说明
ImageType是String镜像仓库类型:personal 或 enterprise
ImageUri是String镜像地址,格式:{domain}/{namespace}/{imageName}:{tag}@{digest}(支持不带 digest)
RegistryId否String企业版 TCR 实例 ID;当 ImageType=enterprise 时必填
Command否String容器启动命令;不填时默认使用 Dockerfile 中的 Entrypoint
Args否String容器启动参数;不填时默认使用 Dockerfile 中的 CMD,多个参数用空格分隔
ImagePort否Integer镜像函数端口:Web Server 镜像为 9000,Job 镜像为 -1,默认 9000

注:ICloudFunctionConfig 为旧参数结构体

ICloudFunctionConfig​

字段必填类型说明
timeout否Number函数超时时间,单位秒,默认 10 秒
envVariables否Record<string, string | number | boolean>包含环境变量的键值对对象
vpc否IFunctionVPC私有网络配置
runtime否String运行时环境配置,可选值见运行环境支持
installDependency否Boolean是否安装依赖,仅 Node.js 有效
memorySize否Number函数运行时内存大小,单位 MB,默认 256
l5否Boolean是否启用 L5 访问
role否String函数绑定的角色

ICloudFunction​

字段必填类型说明
name是String函数名称
description否String函数描述
type否String函数类型,可选值:Event(默认)或 HTTP
timeout否Number函数超时时间,单位秒,默认 10 秒
envVariables否Record<string, string | number | boolean>包含环境变量的键值对对象
vpc否IFunctionVPC私有网络配置
runtime否String运行时环境配置,可选值见运行环境支持
installDependency否Boolean是否安装依赖,仅 Node.js 有效
memorySize否Number函数运行时内存大小,单位 MB,默认 256
l5否Boolean是否启用 L5 访问
role否String函数绑定的角色
triggers否Array of ICloudFunctionTrigger触发器配置列表
handler否String函数入口
ignore否String 或 Array<String>上传函数代码时忽略的文件,以 Glob 模式匹配
isWaitInstall否Boolean是否等待依赖安装完成
codeSecret否String代码保护密钥
layers否Array<ILayerItem>函数要关联的 Layer 版本列表,Layer 会按照在列表中顺序依次覆盖

ILayerItem​

字段必填类型说明
name是Stringlayer 名称
version是Number版本号

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

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

ICloudFunctionTrigger​

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

IFunctionVPC​

字段必填类型说明
vpcId是StringVPC Id
subnetId是StringVPC 子网 Id

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

3. 返回结果​

字段必填类型说明
RequestId是String请求 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: "Nodejs20.19",
// 函数触发器,说明见文档: 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();

使用 code(COS)创建函数示例:

async function testCreateByCosCode() {
await functions.createFunction({
func: {
name: "app-cos-code",
timeout: 5,
runtime: 'Nodejs18.15',
installDependency: false,
envVariables: {}
},
code: {
CosBucketName: "my-bucket",
CosObjectName: "functions/app-cos-code.zip",
CosBucketRegion: "ap-shanghai",
},
});
}

testCreateByCosCode();

💡 CosBucketName 仅填写存储桶名称本体,不包含 -appid 后缀(例如填写 my-bucket,不是 my-bucket-1250000000)。

updateFunctionCode​

1. 接口描述​

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

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

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

2. 输入参数​

IUpdateFunctionCodeParam​

字段必填类型说明
func是ICloudFunction函数配置
functionPath否String函数所在文件夹路径
functionRootPath否String用户本地函数文件目录
base64Code否String函数文件的 base64 编码
codeSecret否String代码保护密钥
deployMode否String代码上传方式:cos 或 zip,默认 cos(zip 限制 1.5MB)

💡 上传方式说明:默认使用 cos,可指定 zip(限制 1.5MB)。

ICloudFunction 结构体

3. 返回结果​

字段必填类型说明
RequestId是String请求 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. 输入参数​

字段必填类型说明
funcParam是ICloudFunction函数配置

ICloudFunction 结构体

3. 返回结果​

字段必填类型说明
RequestId是String请求 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. 输入参数​

字段必填类型说明
name是String函数名称
qualifier否String需要删除的版本号,不填默认删除函数下全部版本

3. 返回结果​

字段必填类型说明
RequestId是String请求 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", "1");
}

test();

getFunctionDetail​

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
name是String函数名称
codeSecret否String代码保护密钥

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
FunctionName是String函数名称
FunctionId是String函数 ID
Namespace是String命名空间
Runtime是String运行时
Handler是String函数入口
Description是String函数的描述信息
CodeSize是Number代码大小
AddTime是String函数创建时间
ModTime是String函数修改时间
Environment是Object函数的环境变量
Environment.Variables是Array环境变量数组
Environment.Variables[].Key是String变量的 Key
Environment.Variables[].Value是String变量的 Value
MemorySize是Number函数的最大可用内存
Timeout是Number函数的超时时间
CodeInfo是String函数代码
Status是String函数状态
StatusDesc是String函数状态描述
Triggers是Array<ITrigger>函数的触发器列表
Layers否Array<ILayerVersionInfo>函数关联的层列表
VpcConfig否ObjectVPC 配置
VpcConfig.VpcId否StringVPC ID
VpcConfig.SubnetId否String子网 ID
Role否String函数绑定的角色
InstallDependency是String是否安装依赖(TRUE/FALSE)
FunctionVersion是String函数版本
Type是String函数类型

ITrigger​

字段必填类型说明
Name是String触发器名称
Type是String触发器类型
TriggerName是String触发器名称
TriggerDesc是String触发器详细配置
Config是String触发器配置
ModTime是Timestamp触发器最后修改时间
AddTime是Timestamp触发器创建时间
AvailableStatus是String触发器状态
Enable是Number使能开关
CustomArgument否String客户自定义参数

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. 输入参数​

字段必填类型说明
functionName是String函数名称
params否Object可选参数 用户调用函数时的入参

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
FunctionRequestId是String此次函数执行的 ID
Duration是Number表示执行函数的耗时,单位是毫秒,异步调用返回为空
BillDuration是Number表示函数的计费耗时,单位是毫秒,异步调用返回为空
MemUsage是Number执行函数时的内存大小,单位为 Byte,异步调用返回为空
InvokeResult是Number0 为正确,异步调用返回为空
RetMsg是String表示执行函数的返回,异步调用返回为空
ErrMsg是String表示执行函数的错误返回信息,异步调用返回为空
Log是String表示执行过程中的日志输出,异步调用返回为空

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();

getFunctionLogsV2​

废弃说明

此接口已废弃,底层 GetFunctionLogs 接口已下线。调用该方法会直接抛错,不再返回日志数据。

请改用 app.log.searchClsLog 查询云函数日志。

1. 接口描述​

接口功能:获取云函数调用日志列表(已废弃)

接口声明:getFunctionLogsV2(options: IFunctionLogOptionsV2): Promise<Object>

2. 输入参数​

字段必填类型说明
options是IFunctionLogOptionsV2日志查询选项

IFunctionLogOptionsV2​

字段必填类型说明
name是String函数名称
offset否Number数据偏移量,Offset + Limit 不能大于 10000
limit否Number返回条数,Offset + Limit 不能大于 10000
startTime否String查询开始时间,例如 2017-05-16 20:00:00,只能与 endTime 相差一天内
endTime否String查询结束时间,例如 2017-05-16 20:59:59,只能与 startTime 相差一天内
requestId否String执行该函数对应的 requestId
qualifier否String函数版本,默认为 $LATEST

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
LogList[]是Array运行函数的返回
Data[].RequestId是String函数日志请求 ID
Data[].RetryNum是String函数日志重试 ID
Data[].RetCode是Number函数执行状态码,200/500
Data[].StartTime是String函数日志开始时间点

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.getFunctionLogsV2({
name: "app",
startTime: "2025-07-19 09:00:00",
endTime: "2025-07-19 19:00:00",
});
const { LogList } = logs;
for (let item of LogList) {
// console.log(item.RequestId);
const logId = item.RequestId;
// 基于 requestId 查 cls 日志
const logDetail = await functions.getFunctionLogDetail({
startTime: "2025-07-19 09:00:00",
logRequestId: logId,
endTime: "2025-07-19 19:00:00",
});
}
}

test();

getFunctionLogDetail​

废弃说明

此接口已废弃,底层 GetFunctionLogDetail 接口已下线。调用该方法会直接抛错。

请改用 app.log.searchClsLog。

1. 接口描述​

接口功能:根据 requestId 查询云函数日志详情(已废弃)

接口声明:getFunctionLogDetail(options: IFunctionLogDetailOptions): Promise<Object>

2. 输入参数​

字段必填类型说明
options是IFunctionLogDetailOptions日志详情查询选项

IFunctionLogDetailOptions​

字段必填类型说明
startTime否String查询开始时间,例如 2017-05-16 20:00:00,只能与 endTime 相差一天内
endTime否String查询结束时间,例如 2017-05-16 20:59:59,只能与 startTime 相差一天内
logRequestId是String执行该函数对应的 requestId

3. 返回结果​

字段必填类型说明
RequestId否String请求 ID
StartTime否String调用时间
Duration否Number调用耗时(ms)
MemUsage否Number内存占用
LogJson否String日志内容
RetMsg否String云函数返回结果
ListOver否Boolean分页标志
Context否String分页游标

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.getFunctionLogsV2({
name: "app",
startTime: "2025-07-19 09:00:00",
endTime: "2025-07-19 19:00:00",
});
const { LogList } = logs;
for (let item of LogList) {
// console.log(item.RequestId);
const logId = item.RequestId;
// 基于 requestId 查 cls 日志
const logDetail = await functions.getFunctionLogDetail({
startTime: "2025-07-19 09:00:00",
logRequestId: logId,
endTime: "2025-07-19 19:00:00",
});
}
}

test();

copyFunction​

1. 接口描述​

接口功能:拷贝云函数

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

2. 输入参数​

字段必填类型说明
name是String原函数名
newFunctionName是String新函数名
targetEnvId是String新环境 ID(跨环境拷贝函数时填写)
force否Boolean是否覆盖同名函数

3. 返回结果​

字段必填类型说明
RequestId是String请求 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. 输入参数​

字段必填类型说明
name是String函数名
triggers是ICloudFunctionTrigger触发器配置数组

3. 返回结果​

字段必填类型说明
RequestId是String请求 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. 输入参数​

字段必填类型说明
name是String函数名
triggerName是String触发器名

3. 返回结果​

字段必填类型说明
RequestId是String请求 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. 输入参数​

字段必填类型说明
functionName是String函数名
codeSecret否String代码保护密钥

3. 返回结果​

字段必填类型说明
RequestID是String请求唯一标识
Url是String函数代码下载链接
CodeSha256是String函数的 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. 输入参数​

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

IUpdateFunctionIncrementalCodeParam 结构体​

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

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

3. 返回结果​

字段必填类型说明
RequestId是String请求 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: "Nodejs20.19",
},
addFiles: "test/index.js",
});

// 本地存在sum 函数文件夹,新增test/目录 (test相对路径为 sum/test/)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs20.19",
},
addFiles: "test/*", // 匹配test目录下所有文件, 这里采用 glob 匹配模式 而非相对路径
});

// 本地存在sum 函数文件夹,删除test/index.js (index.js相对路径为 sum/test/index.js)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs20.19",
},
deleteFiles: ["test/index.js"],
});

// 本地存在sum 函数文件夹,删除test/ 目录 (test相对路径为 sum/test/)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs20.19",
},
deleteFiles: ["test/"], // 删除目录时必须以 /结尾
});
}

test();

createLayer​

1. 接口描述​

接口功能:发布层版本

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

2. 输入参数​

字段必填类型说明
options是IFunctionLayerOptions 结构体请求项

IFunctionLayerOptions 结构体​

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

3. 返回结果​

字段必填类型说明
RequestId是String请求 ID
LayerVersion是Number层版本号

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: ["Nodejs20.19"],
});
console.log(res.LayerVersion);
}

test();

deleteLayerVersion​

1. 接口描述​

接口功能:删除层版本

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

2. 输入参数​

字段必填类型说明
options是ILayerOptions 结构体请求项

ILayerOptions 结构体​

字段必填类型说明
name是String层名称
version是Number版本号

3. 返回结果​

字段必填类型说明
RequestId是String请求 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. 输入参数​

字段必填类型说明
options是IVersionListOptions 结构体请求项

IVersionListOptions 结构体​

字段必填类型说明
name是String层名称
runtimes否Array<String>版本号

3. 返回结果​

字段必填类型说明
RequestId是String请求 ID
LayerVersions是Array<ILayerVersionInfo>文件层详情

ILayerVersionInfo 结构体​

字段必填类型说明
CompatibleRuntimes否Array<String>版本适用的运行时
AddTime否String创建时间
Description否String版本描述
LicenseInfo否String许可证信息
LayerVersion否Number版本号
LayerName否String层名称
Status否String层的具体版本当前状态:Active 正常,Publishing 发布中,PublishFailed 发布失败,Deleted 已删除
Stamp否StringStamp 标记
Tags否Array<Object>标签信息

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. 输入参数​

字段必填类型说明
options是ILayerListOptions 结构体请求项

ILayerListOptions 结构体​

字段必填类型说明
offset否Number偏移
limit否Number限制数
runtime否String适配的运行时
searchKey否String查询 key,模糊匹配名称

3. 返回结果​

字段必填类型说明
RequestId是String请求 ID
TotalCount是Number层总数
Layers是Array<ILayerVersionInfo>文件层详情

ILayerVersionInfo 结构体​

字段必填类型说明
CompatibleRuntimes否Array<String>版本适用的运行时
AddTime否String创建时间
Description否String版本描述
LicenseInfo否String许可证信息
LayerVersion否Number版本号
LayerName否String层名称
Status否String层的具体版本当前状态:Active 正常,Publishing 发布中,PublishFailed 发布失败,Deleted 已删除
Stamp否StringStamp 标记
Tags否Array<Object>标签信息

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. 输入参数​

字段必填类型说明
options是ILayerOptions 结构体请求项

ILayerOptions 结构体​

字段必填类型说明
name是String层名称
version是Number版本号

3. 返回结果​

字段必填类型说明
RequestId是String请求 ID
CompatibleRuntimes是Array<String>适配的运行时
CodeSha256是String层中版本文件的 SHA256 编码
Location是String层中版本文件的下载地址
AddTime是String版本的创建时间
Description是String版本的描述
LicenseInfo是String许可证信息
LayerVersion是Number版本号
LayerName是String层名称
Status是String层的具体版本当前状态, 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 结构体​

字段必填类型说明
functionName是String函数名
qualifier是String函数版本名
versionProvisionedConcurrencyNum是Number当前版本预置并发数

3. 返回结果​

字段必填类型说明
RequestId是String请求 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 结构体​

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

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 结构体​

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

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 结构体​

字段必填类型说明
functionName是String函数名
description否String版本描述

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 结构体​

字段必填类型说明
functionName是String函数名
offset否Number数据偏移量,默认值为 0
limit否Number返回数据长度,默认值为 20
order否Number以升序还是降序的方式返回结果,可选值 ASC 和 DESC
orderBy否Number根据哪个字段进行返回结果排序,支持以下字段: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 结构体​

字段必填类型说明
functionName是String函数名
name是String别名名称,默认设置为 '$DEFAULT' 即可
functionVersion是String别名主版本,默认设置为 '$LATEST' 即可
description否String别名描述
routingConfig否IRoutingConfig路由配置

IRoutingConfig​

字段必填类型说明
AdditionalVersionWeights否Array<IVersionWeight>版本权重配置(灰度)
AddtionVersionMatchs否Array<IVersionMatch>规则路由附加版本

IVersionWeight​

字段必填类型说明
Version是String函数版本名称
Weight是Number该版本的流量权重(0-100)

IVersionMatch​

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

此处仅支持两种配置方式,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 结构体​

字段必填类型说明
functionName是String函数名
name是String别名名称,默认设置为 '$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();

listFunctions​

注意

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

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
limit否Number范围
offset否Number偏移

3. 返回结果​

字段必填类型说明
RequestID是String请求唯一标识
TotalCount是Number总数
Functions是Array函数列表
Functions[].FunctionId是String函数 ID
Functions[].FunctionName是String函数名称
Functions[].Namespace是String命名空间
Functions[].Runtime是String运行时间
Functions[].AddTime是String创建时间
Functions[].ModTime是String修改时间

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()

getFunctionLogs​

废弃说明

此接口已废弃,建议改用 app.log.searchClsLog 查询云函数日志。

1. 接口描述​

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

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

2. 输入参数​

字段必填类型说明
options是IFunctionLogOptions日志查询选项

IFunctionLogOptions​

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

3. 返回结果​

字段必填类型说明
RequestId是String请求唯一标识
TotalCount是String函数日志的总数
Data[]是Array运行函数的返回
Data[].RequestId是String执行该函数对应的 requestId
Data[].FunctionName是String函数的名称
Data[].RetCode是Number函数执行结果,如果是 0 表示执行成功,其他值表示失败
Data[].InvokeFinished是Number函数调用是否结束,如果是 1 表示执行结束,其他值表示调用异常
Data[].StartTime是String函数开始执行时的时间点
Data[].Duration是Number表示执行函数的耗时,单位是毫秒,异步调用返回为空
Data[].BillDuration是Number表示函数的计费耗时,单位是毫秒,异步调用返回为空
Data[].MemUsage是Number执行函数时的内存大小,单位为 Byte,异步调用返回为空
Data[].RetMsg是String表示执行函数的返回,异步调用返回为空

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();

batchCreateTriggers​

1. 接口描述​

接口功能:批量为多个云函数创建触发器

接口声明:app.functions.batchCreateTriggers(options: IFunctionBatchOptions): Promise<void>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

IFunctionBatchOptions

字段必填类型说明
functions是ICloudFunctionV2[]云函数配置数组,每项须含 name(函数名)和 triggers(触发器配置数组)
envId否String环境 ID,不传时使用初始化时的环境
log否Boolean是否打印成功日志,默认 false

3. 返回结果​

Promise<void> — 全部成功后 resolve;任意函数触发器创建失败则抛出 CloudBaseError。

4. 示例代码​

const CloudBase = require("@cloudbase/manager-node");
const app = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "your-env-id",
});

async function test() {
await app.functions.batchCreateTriggers({
functions: [
{
name: "fn-a",
triggers: [
{ name: "everyDay", type: "timer", config: "0 0 2 * * * *" },
],
},
{
name: "fn-b",
triggers: [
{ name: "everyHour", type: "timer", config: "0 0 */1 * * * *" },
],
},
],
});
console.log("批量创建触发器成功");
}

test();

batchDeleteTriggers​

1. 接口描述​

接口功能:批量删除多个云函数的触发器

接口声明:app.functions.batchDeleteTriggers(options: IFunctionBatchOptions): Promise<void>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

同 batchCreateTriggers,functions 数组中每项的 triggers 须包含 name 字段(触发器名称)。

IFunctionBatchOptions

字段必填类型说明
functions是ICloudFunctionV2[]云函数配置数组,每项含 name(函数名)和 triggers(含 name 的触发器数组)
envId否String环境 ID

3. 返回结果​

Promise<void> — 全部删除完成后 resolve。

4. 示例代码​

async function test() {
await app.functions.batchDeleteTriggers({
functions: [
{ name: "fn-a", triggers: [{ name: "everyDay" }] },
{ name: "fn-b", triggers: [{ name: "everyHour" }] },
],
});
console.log("批量删除触发器成功");
}

test();

attachLayer​

1. 接口描述​

接口功能:将指定文件层版本绑定到云函数

接口声明:app.functions.attachLayer(options: IAttachOptions): Promise<IResponseInfo>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

IAttachOptions

字段必填类型说明
functionName是String云函数名称
layerName是String文件层名称
layerVersion是Number文件层版本号
envId否String环境 ID
codeSecret否String加密函数的 Code Secret

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
const res = await app.functions.attachLayer({
functionName: "my-func",
layerName: "my-layer",
layerVersion: 2,
});
console.log("绑定文件层成功,RequestId:", res.RequestId);
}

test();

unAttachLayer​

1. 接口描述​

接口功能:将指定文件层版本从云函数解绑

接口声明:app.functions.unAttachLayer(options: IAttachOptions): Promise<IResponseInfo>

版本提示

自 v5.0.0 起支持此接口

若目标层版本不存在于函数配置中,将抛出 CloudBaseError('层不存在')。

2. 输入参数​

IAttachOptions(同 attachLayer)

字段必填类型说明
functionName是String云函数名称
layerName是String文件层名称
layerVersion是Number文件层版本号
envId否String环境 ID
codeSecret否String加密函数的 Code Secret

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
const res = await app.functions.unAttachLayer({
functionName: "my-func",
layerName: "my-layer",
layerVersion: 2,
});
console.log("解绑文件层成功,RequestId:", res.RequestId);
}

test();

updateFunctionLayer​

1. 接口描述​

接口功能:覆盖更新云函数绑定的文件层列表(全量替换)

接口声明:app.functions.updateFunctionLayer(options: ISortOptions): Promise<IResponseInfo>

版本提示

自 v5.0.0 起支持此接口

⚠️ 该接口为全量替换,调用后函数绑定的文件层列表将被 layers 完全覆盖。如需增量操作,请使用 attachLayer / unAttachLayer。

2. 输入参数​

ISortOptions

字段必填类型说明
functionName是String云函数名称
layers是ILayer[]目标文件层列表(全量)
envId否String环境 ID

ILayer

字段必填类型说明
LayerName是String文件层名称
LayerVersion是Number文件层版本号

3. 返回结果​

字段类型说明
RequestIdString请求唯一标识

4. 示例代码​

async function test() {
const res = await app.functions.updateFunctionLayer({
functionName: "my-func",
layers: [
{ LayerName: "layer-a", LayerVersion: 1 },
{ LayerName: "layer-b", LayerVersion: 3 },
],
});
console.log("更新文件层成功,RequestId:", res.RequestId);
}

test();

downloadLayer​

1. 接口描述​

接口功能:下载指定文件层版本的 ZIP 包到本地

接口声明:app.functions.downloadLayer(options: ILayerDownloadOptions): Promise<void>

版本提示

自 v5.0.0 起支持此接口

2. 输入参数​

ILayerDownloadOptions

字段必填类型说明
name是String文件层名称
version是Number文件层版本号
destPath是String本地存储目录,ZIP 文件将保存为 <destPath>/<name>-<version>.zip
force否Boolean预留字段,暂未启用

3. 返回结果​

Promise<void> — 下载完成后 resolve。目标路径已存在同名文件时抛出 CloudBaseError。

4. 示例代码​

async function test() {
await app.functions.downloadLayer({
name: "my-layer",
version: 2,
destPath: "./downloads",
});
console.log("文件层已下载到 ./downloads/my-layer-2.zip");
}

test();