Skip to main content

Cloud Functions

listFunctions

Note

This interface will be deprecated. It is recommended to use getFunctionList()

1. Interface Description

Function: Get cloud function list

Declaration: listFunctions(limit, offset): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
limitNoNumberRange
offsetNoNumberOffset

3. Return Result

FieldRequiredTypeDescription
RequestIDYesStringRequest unique ID
TotalCountYesNumberTotal count
FunctionsYesArrayFunction list
Functions[].FunctionIdYesStringFunction ID
Functions[].FunctionNameYesStringFunction name
Functions[].NamespaceYesStringNamespace
Functions[].RuntimeYesStringRuntime
Functions[].AddTimeYesStringCreation time
Functions[].ModTimeYesStringModification time

4. Sample Code

import CloudBase from '@cloudbase/manager-node'

const { functions } = new CloudBase({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // CloudBase environment ID, available from Tencent Cloud CloudBase console
})

async function test() {
let res = await functions.listFunctions(20, 0)
const { Functions } = res
for(let function in Functions) {
console.log(function)
}
}

test()

getFunctionList

1. Interface Description

Function: Get cloud function list

Declaration: getFunctionList(limit, offset): Promise<Object>

Note

Supported since version 3.7.0

2. Input Parameters

FieldRequiredTypeDescription
limitNoNumberRange
offsetNoNumberOffset

3. Return Result

FieldRequiredTypeDescription
RequestIDYesStringRequest unique ID
TotalCountYesNumberTotal count
FunctionsYesArrayFunction list
Functions[].FunctionIdYesStringFunction ID
Functions[].FunctionNameYesStringFunction name
Functions[].NamespaceYesStringNamespace
Functions[].RuntimeYesStringRuntime
Functions[].AddTimeYesStringCreation time
Functions[].ModTimeYesStringModification time
Functions[].StatusYesStringFunction status
Functions[].StatusDescYesStringStatus description
Functions[].DescriptionYesStringFunction description

4. Sample Code

import CloudBase from '@cloudbase/manager-node'

const { functions } = new CloudBase({
secretId: 'Your SecretId',
secretKey: 'Your SecretKey',
envId: 'Your envId' // CloudBase environment ID, available from Tencent Cloud CloudBase console
})

async function test() {
let res = await functions.getFunctionList(20, 0)
const { Functions } = res
for(let function in Functions) {
console.log(function)
}
}

test()

createFunction

1. Interface Description

Function: Create function

Declaration: createFunction(funcParam: ICreateFunctionParam): Promise<Object>

⚠️ From version 2.0.0, request parameters changed from ( func: ICloudFunction, functionRootPath: string, force: boolean, base64Code: string ) to (funcParam: ICreateFunctionParam), which is a breaking change

2. Input Parameters

ICreateFunctionParam

FieldRequiredTypeDescription
funcYesICloudFunctionFunction configuration
functionRootPathNoStringLocal function file directory
forceNoBooleanWhether to overwrite same-name function, defaults to false
base64CodeNoStringBase64 encoded function file
codeSecretNoStringCode protection key
functionPathNoStringFunction folder path
deployModeNoStringUpload method: cos or zip, defaults to cos (zip limited to 1.5MB)

💡 Upload Method: Defaults to cos. Use zip if needed (limited to 1.5MB).

Note: To update function code only, use the updateFunctionCode interface.

Note: If a function with the same name exists and force is set to true, the SDK will automatically update function code, configuration, and create triggers.

Note: createFunction supports multiple ways to create functions:

  1. Directly specify the function folder path
  2. Specify the local function folder root directory functionRootPath, determine function file path by functionRootPath + name
  3. Compress function code package to zip file, base64 encode it, and pass to base64Code parameter

Note: ICloudFunctionConfig is the legacy parameter structure

ICloudFunctionConfig

FieldRequiredTypeDescription
timeoutNoNumberFunction timeout
envVariablesNoObjectObject containing environment variable key-value pairs
vpcNoIFunctionVPCVPC configuration
runtimeNoStringRuntime configuration. Options: Nodejs20.19, Nodejs18.15, Nodejs16.13, Nodejs14.18, Nodejs12.16, Nodejs10.15, Php8.0, Php7.4, Php7.2, Python3.9, Python3.7, Python3.6, Python2.7, Golang1, Java8
installDependencyNoBooleanWhether to install dependencies, Node.js only

ICloudFunction

FieldRequiredTypeDescription
nameYesStringFunction name
descriptionNoStringFunction description
typeNoStringFunction type: Event (default) or HTTP
timeoutNoNumberFunction timeout
envVariablesNoObjectObject containing environment variable key-value pairs
vpcNoIFunctionVPCVPC configuration
runtimeNoStringRuntime configuration. Options: Nodejs20.19, Nodejs18.15, Nodejs16.13, Nodejs14.18, Nodejs12.16, Nodejs10.15, Php8.0, Php7.4, Php7.2, Python3.9, Python3.7, Python3.6, Python2.7, Golang1, Java8
installDependencyNoBooleanWhether to install dependencies, Node.js only
triggersNoArray of ICloudFunctionTrigger
handlerNoStringFunction entry point
ignoreNoString or Array<String>Files to ignore when uploading, using Glob patterns
isWaitInstallNoBooleanWhether to wait for dependency installation to complete
layersNoArray<ILayerItem>Layer version list to associate, layers override in order

ILayerItem

FieldRequiredTypeDescription
nameYesStringLayer name
versionYesNumberVersion number

Note: handler is the function entry point. Node.js projects default to index.main. Entry file can only be in root directory, e.g., Node.js project's index.main points to the main method in index.js file

Note: For cloud dependency installation, Node.js runtime needs to be set to a supported version like Nodejs18.15, and package.json must be in the same directory as the entry file. Cloud dependency installation currently does not support other runtimes If not using cloud dependency installation, Node.js runtime does not need runtime (defaults to Nodejs18.15), but Php and Java must specify runtime.

ICloudFunctionTrigger

FieldRequiredTypeDescription
nameYesStringTrigger name
typeYesStringTrigger type. Options: timer
configYesStringTrigger configuration. For timer triggers, config is a cron expression

IFunctionVPC

FieldRequiredTypeDescription
vpcIdYesStringVPC Id
subnetIdYesStringVPC Subnet Id

⚠️ Please verify function creation and deployment success in the CloudBase console during testing. It's possible that creation succeeds (createFunction returns successfully) but deployment fails. Deployment failure is usually due to handler parameter not matching the source code package.

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
await functions.createFunction({
func: {
// Function folder name under functions directory, i.e., function name
name: "app",
// Timeout
timeout: 5,
// Environment variables
envVariables: {
key: "value",
akey: "c",
},
runtime: "Nodejs18.15",
// Function triggers, see documentation: https://cloud.tencent.com/document/product/876/32314
triggers: [
{
// name: Trigger name
name: "myTrigger",
// type: Trigger type, currently only supports timer (scheduled trigger)
type: "timer",
// config: Trigger configuration, for timer triggers, config is a cron expression
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. Interface Description

Function: Update cloud function code

Declaration: updateFunctionCode(funcParam: IUpdateFunctionCodeParam): Promise<Object>

⚠️ From version 2.0.0, request parameters changed from ( func: ICloudFunction, functionRootPath: string, base64Code: string ) to (funcParam: IUpdateFunctionCodeParam), which is a breaking change

2. Input Parameters

IUpdateFunctionCodeParam

FieldRequiredTypeDescription
funcYesICloudFunctionFunction configuration
functionPathNoStringFunction folder path
functionRootPathNoStringLocal function file directory
base64CodeNoStringBase64 encoded function file
codeSecretNoStringCode protection key
deployModeNoStringUpload method: cos or zip, defaults to cos (zip limited to 1.5MB)

💡 Upload Method: Defaults to cos. Use zip if needed (limited to 1.5MB).

ICloudFunction structure

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
let res = await functions.updateFunctionCode({
func: {
// Function folder name under functions directory, i.e., function name
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. Interface Description

Function: Update cloud function configuration

Declaration: updateFunctionConfig(funcParam: ICloudFunction): Promise<Object>

⚠️ From version 2.0.0, request parameters changed from ( name: string, config: ICloudFunctionConfig ) to (funcParam: ICloudFunction), which is a breaking change

2. Input Parameters

FieldRequiredTypeDescription
funcParamYesICloudFunctionFunction configuration

ICloudFunction structure

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
let res = await functions.updateFunctionConfig({
name: "app",
timeout: 6,
});
console.log(res);
}

test();

deleteFunction

1. Interface Description

Function: Delete cloud function

Declaration: deleteFunction(name: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
nameYesStringFunction name
qualifierNoStringVersion to delete, defaults to deleting all versions

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
await functions.deleteFunction("functionName", "1");
}

test();

getFunctionDetail

1. Interface Description

Function: Get cloud function details

Declaration: getFunctionDetail(name: string, codeSecret?: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
nameYesStringFunction name
codeSecretNoStringCode protection key

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest unique ID
FunctionNameYesStringFunction name
NamespaceYesStringNamespace
RuntimeYesStringRuntime
HandlerYesStringFunction entry point
DescriptionYesStringFunction description
ModTimeYesStringModification time
EnvironmentYesObjectEnvironment variables
Environment.VariablesYesArrayEnvironment variable array
Environment.Variables[].KeyYesStringVariable Key
Environment.Variables[].ValueYesStringVariable Value
MemorySizeYesNumberMax available memory
TimeoutYesNumberFunction timeout
CodeInfoYesStringFunction code
TriggersYesArray<ITrigger>Function trigger list

ITrigger

FieldRequiredTypeDescription
TypeYesStringTrigger type
TriggerNameYesStringTrigger name
TriggerDescYesStringTrigger configuration
ModTimeYesTimestampLast modification time
AddTimeYesTimestampCreation time
AvailableStatusYesStringTrigger status
EnableYesNumberEnable switch
CustomArgumentYesStringCustom argument

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
let res = await functions.getFunctionDetail("functionName");
console.log(res); // Output cloud function details
}

test();

invokeFunction

1. Interface Description

Function: Invoke cloud function

Declaration: invokeFunction(name: string, params: object): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
functionNameYesStringFunction name
paramsNoObjectOptional, user input when invoking

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest unique ID
FunctionRequestIdYesStringThis function execution ID
DurationYesNumberExecution duration in ms, empty for async invocation
BillDurationYesNumberBilling duration in ms, empty for async invocation
MemUsageYesNumberMemory usage in Bytes, empty for async invocation
InvokeResultYesNumber0 for success, empty for async invocation
RetMsgYesStringFunction return value, empty for async invocation
ErrMsgYesStringError message, empty for async invocation
LogYesStringLog output during execution, empty for async invocation

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.invokeFunction("app", {
a: 1,
});
console.log(res.RetMsg);
}

test();

getFunctionLogs

Note

This interface is deprecated

Note

This interface no longer returns specific log details. Please use the requestId returned by this interface to call searchClsLog function to query log details.

1. Interface Description

Function: Get cloud function invocation logs

Declaration: getFunctionLogs(options: IFunctionLogOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesIFunctionLogOptionsLog query options

IFunctionLogOptions

FieldRequiredTypeDescription
nameYesStringFunction name
offsetNoNumberData offset, Offset+Limit cannot exceed 10000
limitNoNumberReturn data length, Offset+Limit cannot exceed 10000
orderNoStringSort order, options: desc, asc
orderByNoStringSort field: function_name, duration, mem_usage, start_time
startTimeNoStringQuery date, e.g., 2017-05-16 20:00:00, within one day of EndTime
endTimeNoStringQuery date, e.g., 2017-05-16 20:59:59, within one day of StartTime
requestIdNoStringRequestId of the function execution

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest unique ID
TotalCountYesStringTotal function logs
Data[]YesArrayFunction execution results
Data[].RequestIdYesStringRequestId of the function execution
Data[].FunctionNameYesStringFunction name
Data[].RetCodeYesNumberExecution result, 0 for success, other values for failure
Data[].InvokeFinishedYesNumber1 for finished, other values for exception
Data[].StartTimeYesStringFunction start execution time
Data[].DurationYesNumberExecution duration in ms, empty for async invocation
Data[].BillDurationYesNumberBilling duration in ms, empty for async invocation
Data[].MemUsageYesNumberMemory usage in Bytes, empty for async invocation
Data[].RetMsgYesStringFunction return value, empty for async invocation

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

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);
// Query CLS logs based on requestId
const clsLogRes = await manager.commonService().call({
Action: "SearchClsLog",
Param: {
EnvId: cloudBaseConfig.envId,
StartTime: "2021-06-11 11:06:20", // Start time
EndTime: "2021-06-30 11:06:20", // End time
Limit: 100,
Sort: "asc",
QueryString: `requestId:${item.RequestId}`,
},
});
console.log("clsLogRes", clsLogRes);
}
}

test();

getFunctionLogsV2

Note

This interface does not return specific log details. Please use the RequestId from each log in the LogList array to call getFunctionLogDetail function to query log details.

1. Interface Description

Function: Get cloud function invocation log list

Declaration: getFunctionLogsV2(options: IFunctionLogOptionsV2): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesIFunctionLogOptionsLog query options

IFunctionLogOptionsV2

FieldRequiredTypeDescription
nameYesStringFunction name
offsetNoNumberData offset, Offset+Limit cannot exceed 10000
limitNoNumberReturn data length, Offset+Limit cannot exceed 10000
startTimeNoStringQuery date, e.g., 2017-05-16 20:00:00, within one day of EndTime
endTimeNoStringQuery date, e.g., 2017-05-16 20:59:59, within one day of StartTime
requestIdNoStringRequestId of the function execution
qualifierNoStringFunction version, defaults to $LATEST

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest unique ID
LogList[]YesArrayFunction execution results
Data[].RequestIdYesStringFunction log request ID
Data[].RetryNumYesStringFunction log retry ID
Data[].RetCodeYesNumberExecution status code, 200/500
Data[].StartTimeYesStringFunction log start time

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

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) {
// console.log(item.RequestId);
logId = item.RequestId;
// Query CLS logs based on 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. Interface Description

Function: Query log details based on log requestId returned by getFunctionLogsV2

Declaration: getFunctionLogDetail(options: IFunctionLogDetailOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesIFunctionLogDetailOptionsLog detail query options

IFunctionLogDetailOptions

FieldRequiredTypeDescription
startTimeNoStringQuery date, e.g., 2017-05-16 20:00:00, within one day of EndTime
endTimeNoStringQuery date, e.g., 2017-05-16 20:59:59, within one day of StartTime
requestIdNoStringRequestId of the function execution

3. Return Result

FieldRequiredTypeDescription
StartTimeNoStringInvocation time
DurationNoNumberDuration
MemUsageNoNumberMemory usage
LogJsonNoStringLog content
ListOverNoBooleanPagination flag
ContextNoStringPagination cursor

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const manager = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

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) {
// console.log(item.RequestId);
logId = item.RequestId;
// Query CLS logs based on 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. Interface Description

Function: Copy cloud function

Declaration: copyFunction(name, newFunctionName, targetEnvId, force): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
nameYesStringOriginal function name
newFunctionNameYesStringNew function name
targetEnvIdYesStringTarget environment ID (for cross-env copy)
forceNoBooleanWhether to overwrite same-name function

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
await functions.copyFunction();
}
test();

createFunctionTriggers

1. Interface Description

Function: Create cloud function triggers

Declaration: createFunctionTriggers(name: string, triggers: ICloudFunctionTrigger[]): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
nameYesStringFunction name
triggersYesICloudFunctionTriggerTrigger config array

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
await functions.createFunctionTriggers("app", [
{
// name: Trigger name
name: "newTrigger",
// type: Trigger type, currently only supports timer (scheduled trigger)
type: "timer",
// config: Trigger configuration, for timer triggers, config is a cron expression
config: "0 0 2 1 * * *",
},
]);
}

test();

deleteFunctionTrigger

1. Interface Description

Function: Delete cloud function trigger

Declaration: deleteFunctionTrigger(name: string, triggerName: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
nameYesStringFunction name
triggerNameYesStringTrigger name

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
await functions.deleteFunctionTrigger("app", "newTrigger");
}

test();

getFunctionDownloadUrl

1. Interface Description

Function: Get cloud function code download URL

Declaration: getFunctionDownloadUrl(functionName:string, codeSecret?: string): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
functionNameYesStringFunction name
codeSecretNoStringCode protection key

3. Return Result

FieldRequiredTypeDescription
RequestIDYesStringRequest unique ID
UrlYesStringFunction code download URL
CodeSha256YesStringFunction SHA256 hash

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.getFunctionDownloadUrl("sum");
const { Url } = res;
console.log(Url);
}

test();

updateFunctionIncrementalCode

1. Interface Description

Function: Incrementally upload cloud function code

Declaration: updateFunctionIncrementalCode(funcParam: IUpdateFunctionIncrementalCodeParam): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
funcParamYesIUpdateFunctionIncrementalCodeParam structIncremental update item

IUpdateFunctionIncrementalCodeParam struct

FieldRequiredTypeDescription
funcYesICloudFunctionFunction config, only name and runTime fields supported for incremental update
functionRootPathYesStringLocal function file directory
deleteFilesNoArray<String>Files/directories to delete, use relative paths, directories must end with /
addFilesNoStringGlob pattern for files/directories to add or modify, supports single file or folder

⚠️ Note the path difference between Linux and Windows ('/' vs '\') ⚠️ Incrementally updating package.json does not trigger dependency installation

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
// Local sum function folder exists, add test/index.js file (relative path: sum/test/index.js)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs18.15",
},
addFiles: "test/index.js",
});

// Local sum function folder exists, add test/ directory (relative path: sum/test/)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs18.15",
},
addFiles: "test/*", // Match all files in test directory, using glob pattern not relative path
});

// Local sum function folder exists, delete test/index.js (relative path: sum/test/index.js)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs18.15",
},
deleteFiles: ["test/index.js"],
});

// Local sum function folder exists, delete test/ directory (relative path: sum/test/)
await functions.updateFunctionIncrementalCode({
func: {
name: "sum",
runTime: "Nodejs18.15",
},
deleteFiles: ["test/"], // Directory deletion must end with /
});
}

test();

createLayer

1. Interface Description

Function: Publish layer version

Declaration: createLayer(options: IFunctionLayerOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesIFunctionLayerOptions structRequest item

IFunctionLayerOptions struct

FieldRequiredTypeDescription
contentPathNoStringFolder or ZIP file path
base64ContentNoStringBase64 encoded file
nameYesStringLayer name, 1-64 chars, alphanumeric with - and , must start with letter, cannot end with - or
runtimesYesArray<String>Compatible runtimes, multiple allowed, corresponds to function Runtime options
descriptionNoStringLayer version description
licenseInfoNoStringLayer software license

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID
LayerVersionYesNumberLayer version

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.createLayer({
name: layerName,
contentPath: "./test/functions/luke/",
runtimes: ["Nodejs18.15"],
});
console.log(res.LayerVersion);
}

test();

deleteLayerVersion

1. Interface Description

Function: Delete layer version

Declaration: deleteLayerVersion(options: ILayerOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesILayerOptions structRequest item

ILayerOptions struct

FieldRequiredTypeDescription
nameYesStringLayer name
versionYesNumberVersion number

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.deleteLayerVersion({
name: layerName,
version: 1,
});
console.log(res.RequestId);
}

test();

listLayerVersions

1. Interface Description

Function: Get layer version list

Declaration: listLayerVersions(options: IVersionListOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesIVersionListOptions structRequest item

IVersionListOptions struct

FieldRequiredTypeDescription
nameYesStringLayer name
runtimesNoArray<String>Version number

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID
LayerVersionsYesArray<ILayerVersionInfo>Layer details

ILayerVersionInfo struct

FieldRequiredTypeDescription
CompatibleRuntimesYesArray<String>Compatible runtimes
AddTimeYesStringCreation time
DescriptionYesStringVersion description
LicenseInfoYesStringLicense info
LayerVersionYesNumberVersion number
LayerNameYesStringLayer name
StatusYesStringLayer status: Active, Publishing, PublishFailed, Deleted

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.listLayerVersions({
name: layerName,
});
console.log(res.LayerVersions);
}

test();

listLayers

1. Interface Description

Function: Get layer list

Declaration: listLayers(options: ILayerListOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesILayerListOptions structRequest item

ILayerListOptions struct

FieldRequiredTypeDescription
offsetNoNumberOffset
limitNoNumberLimit
runtimeNoStringCompatible runtime
searchKeyNoStringSearch key, fuzzy match

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID
TotalCountYesNumberTotal layers
LayersYesArray<ILayerVersionInfo>Layer details

ILayerVersionInfo struct

FieldRequiredTypeDescription
CompatibleRuntimesYesArray<String>Compatible runtimes
AddTimeYesStringCreation time
DescriptionYesStringVersion description
LicenseInfoYesStringLicense info
LayerVersionYesNumberVersion number
LayerNameYesStringLayer name
StatusYesStringLayer status: Active, Publishing, PublishFailed, Deleted

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.listLayers({});
console.log(res.Layers);
}

test();

getLayerVersion

1. Interface Description

Function: Get layer version details

Declaration: getLayerVersion(options: ILayerOptions): Promise<Object>

2. Input Parameters

FieldRequiredTypeDescription
optionsYesILayerOptions structRequest item

ILayerOptions struct

FieldRequiredTypeDescription
nameYesStringLayer name
versionYesNumberVersion number

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID
CompatibleRuntimesYesArray<String>Compatible runtimes
CodeSha256YesStringLayer version file SHA256
LocationYesStringLayer version file download URL
AddTimeYesStringVersion creation time
DescriptionYesStringVersion description
LicenseInfoYesStringLicense info
LayerVersionYesNumberVersion number
LayerNameYesStringLayer name
StatusYesStringLayer status: Active, Publishing, PublishFailed, Deleted

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const res = await functions.getLayerVersion({ name: layerName, version: 2 });
console.log(res.LayerVersion);
}

test();

setProvisionedConcurrencyConfig

1. Interface Description

Function: Set function provisioned concurrency

Declaration: setProvisionedConcurrencyConfig(options: ISetProvisionedConcurrencyConfig): Promise<Object>

2. Input Parameters

ISetProvisionedConcurrencyConfig struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
qualifierYesStringFunction version name
versionProvisionedConcurrencyNumYesNumberProvisioned concurrency for version

3. Return Result

FieldRequiredTypeDescription
RequestIdYesStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const setProvisionedConcurrencyConfigRes =
await functions.setProvisionedConcurrencyConfig({
functionName: "sum",
qualifier: "1", // Version 1
versionProvisionedConcurrencyNum: 10, // Set 10 concurrency
});
console.log(setProvisionedConcurrencyConfigRes);
}

test();

getProvisionedConcurrencyConfig

1. Interface Description

Function: Query function provisioned concurrency

Declaration: getProvisionedConcurrencyConfig(options: IGetProvisionedConcurrencyConfig): Promise<Object>

2. Input Parameters

IGetProvisionedConcurrencyConfig struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
qualifierNoStringFunction version, queries all versions if not specified

3. Return Result

FieldTypeDescription
RequestIdStringRequest ID
UnallocatedConcurrencyNumNumberRemaining configurable provisioned concurrency
AllocatedArray<IVersionProvisionedConcurrencyInfo>Provisioned concurrency config details

IVersionProvisionedConcurrencyInfo

FieldTypeDescription
AllocatedProvisionedConcurrencyNumNumberConfigured provisioned concurrency
AvailableProvisionedConcurrencyNumNumberCompleted provisioned concurrency
StatusStringTask status: Done, InProgress, Failed
StatusReasonStringStatus description
QualifierStringVersion number

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const getProvisionedConcurrencyConfigRes =
await functions.getProvisionedConcurrencyConfig({
functionName: "sum",
qualifier: "1", // Version 1
});

console.log(getProvisionedConcurrencyConfigRes);
}

test();

deleteProvisionedConcurrencyConfig

1. Interface Description

Function: Delete function provisioned concurrency

Declaration: deleteProvisionedConcurrencyConfig(options: IDeleteProvisionedConcurrencyConfig): Promise<Object>

2. Input Parameters

IDeleteProvisionedConcurrencyConfig struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
qualifierYesStringFunction version, queries all versions if not specified

3. Return Result

FieldTypeDescription
RequestIdStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const deleteProvisionedConcurrencyConfigRes =
await functions.deleteProvisionedConcurrencyConfig({
functionName: "sum",
qualifier: "1", // Version 1
});

console.log(deleteProvisionedConcurrencyConfigRes);
}

test();

publishVersion

1. Interface Description

Function: Publish new function version

Declaration: publishVersion(options: IPublishVersionParams): Promise<Object>

2. Input Parameters

IPublishVersionParams struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
descriptionNoStringVersion description

3. Return Result

FieldTypeDescription
RequestIdStringRequest ID
FunctionVersionStringFunction version
CodeSizeNumberCode size
MemorySizeNumberMax available memory
HandlerStringFunction entry
TimeoutNumberFunction timeout
RuntimeStringRuntime environment
NamespaceStringFunction namespace

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const createNewVersionRes = await functions.publishVersion({
functionName: "sum",
description: "test", // Create new version for sum function with description test
});

console.log(createNewVersionRes);
}

test();

listVersionByFunction

1. Interface Description

Function: Query function version list

Declaration: listVersionByFunction(options: IListFunctionVersionParams): Promise<Object>

2. Input Parameters

IListFunctionVersionParams struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
offsetNoNumberData offset, default 0
limitNoNumberReturn data length, default 20
orderNoNumberSort order: ASC or DESC
orderByNoNumberSort field: AddTime, ModTime

3. Return Result

FieldTypeDescription
RequestIdStringRequest ID
TotalCountStringTotal function versions
FunctionVersionArray<String>Function version names
VersionsArray<IFunctionVersion>Function version list

IFunctionVersion

FieldTypeDescription
VersionStringFunction version name
DescriptionStringVersion description
AddTimeStringCreation time
ModTimeStringModification time
StatusStringVersion status

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const functionVersions = await functions.listVersionByFunction({
functionName: "sum",
});
console.log(functionVersions);
}

test();

updateFunctionAliasConfig

1. Interface Description

Function: Update function version configuration (alias configuration)

Declaration: updateFunctionAliasConfig(options: IUpdateFunctionAliasConfig): Promise<Object>

2. Input Parameters

IUpdateFunctionAliasConfig struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
nameYesStringAlias name, default '$DEFAULT'
functionVersionYesStringAlias main version, default '$LATEST'
descriptionNoStringAlias description
routingConfigNoIRoutingConfigRouting configuration

IRoutingConfig

FieldRequiredTypeDescription
AddtionVersionMatchsYesArray<IVersionMatch>Rule routing extra versions

IVersionMatch

FieldRequiredTypeDescription
VersionYesStringFunction version name
KeyYesStringMatch rule key, default 'invoke.headers.X-Tcb-Route-Key'
MethodYesStringMatch method, default 'range'
ExpressionYesStringRange match rule: open or closed interval (a,b) [a,b], where a, b are integers
danger

Only two configuration methods are supported: 1. Specify single version with traffic ratio, remaining traffic goes to $LATEST; 2. Specify two versions to allocate all traffic, as shown in examples below

3. Return Result

FieldTypeDescription
RequestIdStringRequest ID

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
const updateFunctionAliasConfigRes1 =
await functions.updateFunctionAliasConfig({
functionName: "sum",
name: "$DEFAULT",
functionVersion: "$LATEST",
routingConfig: {
AddtionVersionMatchs: [
{
Expression: "[0,3)", // Set version 1 traffic ratio to 3%, remaining 97% goes to 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)", // Set version 1 traffic ratio to 10%
Key: "invoke.headers.X-Tcb-Route-Key",
Method: "range",
Version: "1",
},
{
Expression: "[10,100)", // Set version 2 traffic ratio to 90%
Key: "invoke.headers.X-Tcb-Route-Key",
Method: "range",
Version: "2",
},
],
},
});
console.log("updateFunctionAliasConfigRes2", updateFunctionAliasConfigRes2);
}

test();

getFunctionAlias

1. Interface Description

Function: Query function version configuration (alias configuration)

Declaration: getFunctionAlias(options: IGetFunctionAlias): Promise<Object>

2. Input Parameters

IGetFunctionAlias struct

FieldRequiredTypeDescription
functionNameYesStringFunction name
nameYesStringAlias name, default '$DEFAULT'

3. Return Result

FieldTypeDescription
RequestIdStringRequest ID
FunctionVersionStringAlias main version
NameStringAlias name
RoutingConfigIRoutingConfigAlias routing info
DescriptionStringDescription
AddTimeStringCreation time
ModTimeStringModification time

4. Sample Code

import CloudBase from "@cloudbase/manager-node";

const { functions } = new CloudBase({
secretId: "Your SecretId",
secretKey: "Your SecretKey",
envId: "Your envId", // CloudBase environment ID, available from Tencent Cloud CloudBase console
});

async function test() {
// Query traffic configuration ratio
const getVersionConfigRes = await functions.getFunctionAlias({
name: "$DEFAULT",
functionName: "sum",
});

console.log("getVersionConfigRes", JSON.stringify(getVersionConfigRes));
}

test();