云函数
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();
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();