云函数
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,默认 cos(zip 限制 1.5MB) |
💡 上传方式说明:默认使用
cos,可指定zip(限制 1.5MB)。
注:如果只更新函数代码,请使用 updateFunctionCode 接口。
注:如果存在同名云函数,并设置了 force 选项为 true,SDK 将会自动更新函数代码,更新函数配置并创建触发器。
注:createFunction 支持多种方式创建函数:
- 用户直接指定函数文件夹的路径
- 用户指定本地的存放函数文件夹的根目录
functionRootPath,根据functionRootPath + name确定函数文件路径 - 用户将函数代码包压缩为 zip 文件后进行 base64 转码,传入 base64Code 参数
注:ICloudFunctionConfig 为旧参数结构体
ICloudFunctionConfig
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| timeout | 否 | Number | 函数超时时间,单位秒,默认 10 秒 |
| envVariables | 否 | Record<string, string | number | boolean> | 包含环境变量的键值对对象 |
| vpc | 否 | IFunctionVPC | 私有网络配置 |
| runtime | 否 | String | 运行时环境配置,可选值: Nodejs20.19, Nodejs18.15, Nodejs16.13, Nodejs14.18, Nodejs12.16, Nodejs10.15, Php8.0, Php7.4, Php7.2, Python3.10, Python3.9, Python3.7, Python3.6, Python2.7, Golang1, Java8, Java11 |
| 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 | 运行时环境配置,可选值: Nodejs20.19, Nodejs18.15, Nodejs16.13, Nodejs14.18, Nodejs12.16, Nodejs10.15, Php8.0, Php7.4, Php7.2, Python3.10, Python3.9, Python3.7, Python3.6, Python2.7, Golang1, Java8, Java11 |
| 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 | 是 | String | layer 名称 |
| version | 是 | Number | 版本号 |
注:handler 函数处理入口,Node.js 项目默认值为 index.main,入口文件只能在根目录,如 Node.js 项目的 index.main,指向的是 index.js 文件的 main 方法
注:如果使用在线安装依赖,Node.js 运行时需设置为 Nodejs18.15 等支持的版本,且必须在入口文件同级目录设置 package.json,在线安装依赖暂不支持其他运行时
如果不使用在线安装依赖,Node.js 运行时无需填 runtime (默认Nodejs18.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", // 云开发环境ID,可在腾讯云云开发控制台获取
});
async function test() {
await functions.createFunction({
func: {
// functions 文件夹下函数文件夹的名称,即函数名
name: "app",
// 超时时间
timeout: 5,
// 环境变量
envVariables: {
key: "value",
akey: "c",
},
runtime: "Nodejs18.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
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| func | 是 | ICloudFunction | 函数配置 |
| functionPath | 否 | String | 函数所在文件夹路径 |
| functionRootPath | 否 | String | 用户本地函数文件目录 |
| base64Code | 否 | String | 函数文件的 base64 编码 |
| codeSecret | 否 | String | 代码保护密钥 |
| deployMode | 否 | String | 代码上传方式:cos 或 zip,默认 cos(zip 限制 1.5MB) |
💡 上传方式说明:默认使用
cos,可指定zip(限制 1.5MB)。
3. 返回结果
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| RequestId | 是 | String | 请求 ID |