Tencentcloud-Serverless-Nodejs is a Tencent Cloud SCF SDK that integrates SCF APIs to simplify the function invocation method. It can invoke a function from a local system, CVM instance, container, or another cloud function, eliminating the need for you to encapsulate TencentCloud APIs.
Tencentcloud-Serverless-Nodejs SDK has the following features:
region
and secretId
).Note:Calling SDK across functions is only applicable to event-triggered functions. HTTP-triggered functions can be invoked by requesting the corresponding path of the function in the function code.
testNodejsSDK
in the /Users/xxx/Desktop/testNodejsSDK
path.testNodejsSDK
directory and run the following commands in sequence to install tencentcloud-serverless-nodejs SDK.npm init -y
npm install tencentcloud-serverless-nodejs
After installation, you will be able to 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 implement mutual recursion of functions in different regions, you need to specify the region. For the naming rules, please see Region List.
- If no region is specified, functions will invoke one another within the same region.
- 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
permissions (or containingSCF Invoke
, such asSCF FullAccess
). For more information, please see Roles and Policies.
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 permissions, 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 described below:
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 a Version.default
will be used by default.event
input parameter.testNodejsSDK
directory to ZIP format and upload them to the cloud."Already invoked a function!"
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 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 permissions, 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
}
NotesecretId and secretKey: Secret ID and secret key of TencentCloud API. You can obtain them or create new ones by logging into the CAM Console and selecting Access Key > API Key Management.
Go to the directory where the index.js
file is located and run the following command to view the result.
On Linux or macOS, run the following command:
export NODE_ENV=development && node index.js
On Windows, run the following command:
set NODE_ENV=development && node index.js
The output is as follows:
prepare to invoke a function!
{"key":"value"}
Already invoked a function!
We recommend you run the npm init
command to initialize the SDK before using it.
Note:
- The
region
,secretId
, andsecretKey
parameters can be passed in using the initialization command.- After the initialization is completed, the initialization configuration can be reused for future API calls.
Parameter information:
Parameter Name | 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 is used to invoke a function. Currently, sync invocation is supported.
Parameter information:
Parameter Name | 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, which is default by 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?