跳到主要内容

云函数

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函数名称
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() {
await functions.deleteFunction("functionName", "1");
}

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 均为整数
危险

此处仅支持两种配置方式,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();