云函数
listFunctions
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'
})
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>
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'
})
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 | 是否覆盖同名函数 |
| base64Code | 否 | String | 函数文件的 base64 编码 |
| codeSecret | 否 | String | 代码保护密钥 |
| functionPath | 否 | String | 函数所在文件夹路径 |
注:如果只更新函数代码,请使用 updateFunctionCode 接口。
注:如果存在同名云函数,并设置了 force 选项为 true,SDK 将会自动更新函数代码,更新函数配置并创建触发器。
注:createFunction 支持多种方式创建函数:
- 用户直接指定函数文件夹的路径
- 用户指定本地的存放函数文件夹的根目录
functionRootPath,根据 functionRootPath + name 确定函数文件路径 - 用户将函数代码包压缩为 zip 文件后进行 base64 转码,传入 base64Code 参数
注:ICloudFunctionConfig 为旧参数结构体
ICloudFunctionConfig
| 字段 | 必填 | 类型 | 说明 |
|---|
| timeout | 否 | Number | 函数超时时间 |
| envVariables | 否 | Object | 包含环境变量的键值对对象 |
| vpc | 否 | IFunctionVPC | 私有网络配置 |
| runtime | 否 | String | 运行时环境配置,可选值: Nodejs8.9, Nodejs10.15, Php7, Java8 |
| installDependency | 否 | Boolean | 是否安装依赖,仅 Node.js 有效 |
ICloudFunction
| 字段 | 必填 | 类型 | 说明 |
|---|
| name | 是 | String | 函数名称 |
| timeout | 否 | Number | 函数超时时间 |
| envVariables | 否 | Object | 包含环境变量的键值对对象 |
| vpc | 否 | IFunctionVPC | 私有网络配置 |
| runtime | 否 | String | 运行时环境配置,可选值: Nodejs8.9, Nodejs10.15, Php7, Java8 |
| installDependency | 否 | Boolean | 是否安装依赖,仅 Node.js 有效 |
| triggers | 否 | Array of ICloudFunctionTrigger | |
| handler | 否 | String | 函数入口 |
| ignore | 否 | String 或 Array<String> | 上传函数代码时忽略的文件,以 Glob 模式匹配 |
| isWaitInstall | 否 | Boolean | 是否等待依赖安装完成 |
| layers | 否 | Array<ILayerItem> | 函数要关联的 Layer 版本列表,Layer 会按照在列表中顺序依次覆盖。 |
ILayerItem
| 字段 | 必填 | 类型 | 说明 |
|---|
| name | 是 | String | layer 名称 |
| version | 是 | Number | 版本号 |
注: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
| 字段 | 必填 | 类型 | 说明 |
|---|
| name | 是 | String | 触发器名称 |
| type | 是 | String | 触发器类型,可选值:timer |
| config | 是 | String | 触发器配置,在定时触发器下,config 格式为 cron 表达式 |
IFunctionVPC
| 字段 | 必填 | 类型 | 说明 |
|---|
| vpcId | 是 | String | VPC Id |
| subnetId | 是 | String | VPC 子网 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",
});
async function test() {
await functions.createFunction({
func: {
name: "app",
timeout: 5,
envVariables: {
key: "value",
akey: "c",
},
runtime: "Nodejs10.15",
triggers: [
{
name: "myTrigger",
type: "timer",
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
| 字段 | 必填 | 类型 | 说明 |
|---|
| func | 是 | ICloudFunction | 函数配置 |
| functionRootPath | 否 | String | 用户本地函数文件目录 |
| base64Code | 否 | String | 函数文件的 base64 编码 |
| codeSecret | 否 | String | 函数文件的 base64 编码 |
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",
});
async function test() {
let res = await functions.updateFunctionCode({
func: {
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",
});
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",
});
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 | 函数名称 |
| Namespace | 是 | String | 命名空间 |
| Runtime | 是 | String | 运行时 |
| Handler | 是 | String | 函数入口 |
| Description | 是 | String | 函数的描述信息 |
| ModTime | 是 | String | 函数修改时间 |
| Environment | 是 | Object | 函数的环境变量 |
| Environment.Variables | 是 | Array | 环境变量数组 |
| Environment.Variables[].Key | 是 | String | 变量的 Key |
| Environment.Variables[].Value | 是 | String | 变量的 Value |
| MemorySize | 是 | Number | 函数的最大可用内存 |
| Timeout | 是 | Number | 函数的超时时间 |
| CodeInfo | 是 | String | 函数代码 |
| Triggers | 是 | Array<ITrigger> | 函数的触发器列表 |
ITrigger
| 字段 | 必填 | 类型 | 说明 |
|---|
| Type | 是 | String | 触发器类型 |
| TriggerName | 是 | String | 触发器名称 |
| TriggerDesc | 是 | 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",
});
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 | 是 | Number | 0 为正确,异步调用返回为空 |
| 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",
});
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. 输入参数
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",
});
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);
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();
getFunctionLogsV2
1. 接口描述
接口功能:获取云函数调用日志列表
接口声明:getFunctionLogsV2(options: IFunctionLogOptionsV2): Promise<Object>
2. 输入参数
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",
});
const { functions } = manager;
async function test() {
const logs = await functions.getFunctionLogs({ name: "app", startTime: "2025-07-19 09:00:00", endTime: "2025-07-19 19:00:00" });
const { LogList } = logs;
for (let item in LogList) {
logId = item.RequestId
const logDetail = await functions.getFunctionLogDetail({
startTime: "2025-07-19 09:00:00",
logRequestId: logId,
endTime: "2025-07-19 19:00:00"
})
}
}
test();
getFunctionLogDetail
1. 接口描述
接口功能:根据 getFunctionLogsV2 中返回的日志 requestId 查询日志详情
接口声明:getFunctionLogDetail(options: IFunctionLogDetailOptions): Promise<Object>
2. 输入参数
IFunctionLogDetailOptions
| 字段 | 必填 | 类型 | 说明 |
|---|
| startTime | 否 | String | 查询的具体日期,例如:2017-05-16 20:00:00,只能与 EndTime 相差一天之内 |
| endTime | 否 | String | 查询的具体日期,例如:2017-05-16 20:59:59,只能与 StartTime 相差一天之内 |
| requestId | 否 | String | 执行该函数对应的 requestId |
3. 返回结果
| 字段 | 必填 | 类型 | 说明 |
|---|
| StartTime | 否 | String | 调用时间 |
| Duration | 否 | Number | 调用耗时 |
| MemUsage | 否 | Number | 内存占用 |
| LogJson | 否 | 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",
});
const { functions } = manager;
async function test() {
const logs = await functions.getFunctionLogs({ name: "app", startTime: "2025-07-19 09:00:00", endTime: "2025-07-19 19:00:00" });
const { LogList } = logs;
for (let item in LogList) {
logId = item.RequestId
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",
});
async function test() {
await functions.copyFunction();
}
test();
createFunctionTriggers
1. 接口描述
接口功能:创建云函数触发器
接口声明:createFunctionTriggers(name: string, triggers: ICloudFunctionTrigger[]): Promise<Object>
2. 输入参数
3. 返回结果
| 字段 | 必填 | 类型 | 说明 |
|---|
| RequestId | 是 | String | 请求 ID |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
async function test() {
await functions.createFunctionTriggers("app", [
{
name: "newTrigger",
type: "timer",
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",
});
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",
});
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 字段设置 d |
| 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",
});
async function test() {
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs10.15",
},
addFiles: "test/index.js",
});
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs10.15",
},
addFiles: "test/*",
});
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs10.15",
},
deleteFiles: ["test/index.js"],
});
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs10.15",
},
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",
});
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. 输入参数
| 字段 | 必填 | 类型 | 说明 |
|---|
| 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",
});
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 已删除 |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
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 已删除 |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
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",
});
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",
});
async function test() {
const setProvisionedConcurrencyConfigRes =
await functions.setProvisionedConcurrencyConfig({
functionName: "sum",
qualifier: "1",
versionProvisionedConcurrencyNum: 10,
});
console.log(setProvisionedConcurrencyConfigRes);
}
test();
getProvisionedConcurrencyConfig
1. 接口描述
接口功能:查询函数预置并发
接口声明:getProvisionedConcurrencyConfig(options: IGetProvisionedConcurrencyConfig): Promise<Object>
2. 输入参数
IGetProvisionedConcurrencyConfig 结构体
| 字段 | 必填 | 类型 | 说明 |
|---|
| functionName | 是 | String | 函数名 |
| qualifier | 否 | String | 函数版本名,不填则查询该函数所有版本的预置并发信息 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|
| RequestId | String | 请求 ID |
| UnallocatedConcurrencyNum | Number | 该函数剩余可配置的预置并发数。 |
| Allocated | Array<IVersionProvisionedConcurrencyInfo> | 函数已预置的并发配置详情。 |
IVersionProvisionedConcurrencyInfo
| 字段 | 类型 | 说明 |
|---|
| AllocatedProvisionedConcurrencyNum | Number | 设置的预置并发数。 |
| AvailableProvisionedConcurrencyNum | Number | 已完成设置的并发数 |
| Status | String | 预置任务状态,Done 表示已完成,InProgress 表示进行中,Failed 表示部分或全部失败。 |
| StatusReason | String | 任务状态说明 |
| Qualifier | String | 版本号 |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
async function test() {
const getProvisionedConcurrencyConfigRes =
await functions.getProvisionedConcurrencyConfig({
functionName: "sum",
qualifier: "1",
});
console.log(getProvisionedConcurrencyConfigRes);
}
test();
deleteProvisionedConcurrencyConfig
1. 接口描述
接口功能:删除函数预置并发
接口声明:deleteProvisionedConcurrencyConfig(options: IDeleteProvisionedConcurrencyConfig): Promise<Object>
2. 输入参数
IDeleteProvisionedConcurrencyConfig 结构体
| 字段 | 必填 | 类型 | 说明 |
|---|
| functionName | 是 | 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",
});
async function test() {
const deleteProvisionedConcurrencyConfigRes =
await functions.deleteProvisionedConcurrencyConfig({
functionName: "sum",
qualifier: "1",
});
console.log(deleteProvisionedConcurrencyConfigRes);
}
test();
publishVersion
1. 接口描述
接口功能:发布函数新版本
接口声明:publishVersion(options: IPublishVersionParams): Promise<Object>
2. 输入参数
IPublishVersionParams 结构体
| 字段 | 必填 | 类型 | 说明 |
|---|
| functionName | 是 | String | 函数名 |
| description | 否 | String | 版本描述 |
3. 返回结果
| 字段 | 类型 | 说明 |
|---|
| RequestId | String | 请求 ID |
| FunctionVersion | String | 函数版本 |
| CodeSize | Number | 代码大小 |
| MemorySize | Number | 最大可用内存 |
| Handler | String | 函数入口 |
| Timeout | Number | 函数的超时时间 |
| Runtime | String | 函数的运行环境 |
| Namespace | String | 函数的命名空间 |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
async function test() {
const createNewVersionRes = await functions.publishVersion({
functionName: "sum",
description: "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. 返回结果
| 字段 | 类型 | 说明 |
|---|
| RequestId | String | 请求 ID |
| TotalCount | String | 函数版本总数。 |
| FunctionVersion | Array<String> | 函数版本名列表 |
| Versions | Array<IFunctionVersion> | 函数版本列表。 |
IFunctionVersion
| 字段 | 类型 | 说明 |
|---|
| Version | String | 函数版本名 |
| Description | String | 版本描述信息 |
| AddTime | String | 创建时间 |
| ModTime | String | 修改时间 |
| Status | String | 版本状态 |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
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
| 字段 | 必填 | 类型 | 说明 |
|---|
| AddtionVersionMatchs | 是 | Array<IVersionMatch> | 规则路由附加版本 |
IVersionMatch
| 字段 | 必填 | 类型 | 说明 |
|---|
| Version | 是 | String | 函数版本名称 |
| Key | 是 | String | 匹配规则的 key,调用时通过传 key 来匹配规则路由到指定版本,此处默认填 'invoke.headers.X-Tcb-Route-Key' |
| Method | 是 | String | 匹配方式,默认为 'range' |
| Expression | 是 | String | range 匹配规则要求:需要为开区间或闭区间描述 (a,b) [a,b],其中 a、b 均为整数 |
此处仅支持两种配置方式,1. 指定单版本及对应流量比例,其余流量均打入 $LATEST 版本;2. 指定两个版本分配全部流量,示例如下所示
3. 返回结果
| 字段 | 类型 | 说明 |
|---|
| RequestId | String | 请求 ID |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
async function test() {
const updateFunctionAliasConfigRes1 =
await functions.updateFunctionAliasConfig({
functionName: "sum",
name: "$DEFAULT",
functionVersion: "$LATEST",
routingConfig: {
AddtionVersionMatchs: [
{
Expression: "[0,3)",
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)",
Key: "invoke.headers.X-Tcb-Route-Key",
Method: "range",
Version: "1",
},
{
Expression: "[10,100)",
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. 返回结果
| 字段 | 类型 | 说明 |
|---|
| RequestId | String | 请求 ID |
| FunctionVersion | String | 别名指向的主版本 |
| Name | String | 别名的名称 |
| RoutingConfig | IRoutingConfig | 别名的路由信息 |
| Description | String | 描述信息 |
| AddTime | String | 创建时间 |
| ModTime | String | 修改时间 |
4. 示例代码
import CloudBase from "@cloudbase/manager-node";
const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId",
});
async function test() {
const getVersionConfigRes = await functions.getFunctionAlias({
name: "$DEFAULT",
functionName: "sum",
});
console.log("getVersionConfigRes", JSON.stringify(getVersionConfigRes));
}
test();