Tencentcloud-Serverless-Nodejs is a Tencent Cloud SCF SDK that integrates SCF business flow APIs to simplify the function invocation method. It can be used to invoke a function quickly from a local system, CVM instance, container, or function, eliminating your need to encapsulate public TencentCloud APIs.
Tencentcloud-Serverless-Nodejs SDK has the following features:
secretId
).testNodejsSDK
in the /Users/xxx/Desktop/testNodejsSDK
path.testNodejsSDK
directory and run the following commands in sequence to install the Tencentcloud-Serverless-Nodejs SDK.npm init -y
npm install tencentcloud-serverless-nodejs
After installation, you can see node_modules
, package.json
, and package-lock.json
in the testNodejsSDK
directory.Go to the GitHub code hosting page to download the latest source package and install it after decompression.
To install dependencies online with SCF, run the following command in package.json
:
{
"dependencies": {
"tencentcloud-serverless-nodejs":"*"
}
}
Note:
- To make functions in different regions invoke each other, regions must be specified. For the naming convention, please see Region List.
- If no region is specified, intra-region mutual function invocation will be used by default.
- If no namespace is specified,
default
will be used by default.- The invoker function should have the public network access enabled.
- If parameters such as
secretId
andsecretKey
are not manually passed in, the function needs to be bound to a role withSCF Invoke
permission (or containingSCF Invoke
, such asSCF FullAccess
). For more information, please see Creating Function Execution Role.
Create a to-be-invoked Node.js function named "FuncInvoked" in the region of Beijing. The content of the function is as follows:
'use strict';
exports.main_handler = async (event, context, callback) => {
console.log("\n Hello World from the function being invoked\n")
console.log(event)
console.log(event["non-exist"])
return event
};
Create an index.js
file in the testNodejsSDK
directory and enter the following sample code to create an invoking Node.js function.
const { SDK, LogType } = require('tencentcloud-serverless-nodejs')
exports.main_handler = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false
const sdk = new SDK({
region:'ap-beijing'
}) // If you bind and run in SCF an execution role with SCF invocation permission, the authentication information in the environment variable will be used by default
const res = await sdk.invoke({
functionName: 'FuncInvoked',
logType: LogType.Tail,
data: {
name: 'test',
role: 'test_role'
}
})
console.log(res)
// return res
}
The main parameters can be obtained as follows:
FuncInvoked
function created in step 1 is used as an example in this document.$LATEST
will be used by default. For more information, please see Viewing Version.default
will be used by default.event
input parameter.Create an invoking Node.js function named "NodejsInvokeTest" in the region of Chengdu. The main settings of the function are as follows:
testNodejsSDK
directory in ZIP format and upload it to the cloud.On the function details page in the SCF console, you can test run a function by going to the function code tab and clicking Execute. Below is the output result:
"Already invoked a function!"
FuncInvoked
in the Beijing region. The content of the function is as follows:'use strict';
exports.main_handler = async (event, context, callback) => {
console.log("\n Hello World from the function being invoked\n")
console.log(event)
console.log(event["non-exist"])
return event
};
index.js
file in the testNodejsSDK
directory as an invoking Node.js function and enter the following sample code:const { SDK, LogType } = require('tencentcloud-serverless-nodejs')
exports.main_handler = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false
const sdk = new SDK({
region:'ap-beijing',
secretId: 'AKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxj',
secretKey: 'WtxxxxxxxxxxxxxxxxxxxxxxxxxxxxqL'
}) // If you bind and run in SCF an execution role with SCF invocation permission, the authentication information in the environment variable will be used by default
const res = await sdk.invoke({
functionName: 'FuncInvoked',
logType: LogType.Tail,
data: {
name: 'test',
role: 'test_role'
}
})
console.log(res)
// return res
}
Note:
secretId
andsecretKey
: secret ID and secret key of TencentCloud API. You can go to the CAM console and select Access Key > API Key Management to get them or create new ones.
index.js
file is located and run the following command to view the result.export NODE_ENV=development && node index.js
set NODE_ENV=development && node index.js
The output is as follows:prepare to invoke a function!
{"key":"value"}
Already invoked a function!
You are recommended to run the npm init
command to initialize the SDK before using it.
Note:
- The
region
,secretId
, andsecretKey
parameters can be passed in by using the initialization command.- After initialization is completed, the initialization configuration can be reused for future API calls.
Parameter information:
Parameter | Required | Type | Description |
---|---|---|---|
region | No | String |
Region |
secretId | No | String |
process.env.TENCENTCLOUD_SECRETID is used by default |
secretKey | No | String |
process.env.TENCENTCLOUD_SECRETKEY is used by default |
token | No | String |
process.env.TENCENTCLOUD_SESSIONTOKEN is used by default |
This API is used to invoke a function. Currently, sync invocation is supported.
Parameter information:
Parameter | Required | Type | Description |
---|---|---|---|
functionName | Yes | String |
Function name |
qualifier | No | String |
Function version. Default value: $LATEST |
data | No | String |
Input parameter for function execution |
namespace | No | String |
Namespace. Default value: default |
region | No | String |
Region |
secretId | No | String |
process.env.TENCENTCLOUD_SECRETID is used by default |
secretKey | No | String |
process.env.TENCENTCLOUD_SECRETKEY is used by default |
token | No | String |
process.env.TENCENTCLOUD_SESSIONTOKEN is used by default |
Was this page helpful?