Tencentcloud-Serverless-Nodejs 是腾讯云云函数 SDK,集成云函数业务流接口,简化云函数的调用方法。在使用该 SDK 的情况下,用户可以方便的从本地、云服务器(CVM)、容器、以及云端函数里快速调用某一个云函数,无需再进行公有云 API 的接口封装。
Tencentcloud-Serverless-Nodejs SDK 的功能特性可分为以下几点:
testNodejsSDK
的项目目录,项目路径为 /Users/xxx/Desktop/testNodejsSDK
。testNodejsSDK
目录,并依次执行以下命令,安装 tencentcloud-serverless-nodejs SDK。npm init -y
npm install tencentcloud-serverless-nodejs
安装完成后,在 testNodejsSDK
目录下可以查看到 node_modules
,package.json
和 package-lock.json
。
前往 Github 代码托管地址 下载最新源码包,解压源码包后进行安装。
使用 云函数在线依赖安装,在 package.json
中执行以下命令并进行安装。
{
"dependencies": {
"tencentcloud-serverless-nodejs":"*"
}
}
注意:
- 不同地域下的函数互调,须指定地域,命名规则参见 地域列表。
- 如果不指定地域,默认为同地域下函数互调。
- 命名空间不指定,默认为 default。
- 需要打开调用方函数外网访问权限。
- 如果没有手动传入 secretId 和 secretKey 等参数,函数需绑定有 SCF Invoke 权限(或者包含 SCF Invoke,例如 SCF FullAccess)的角色,可参考 创建函数运行角色。
创建一个地域为【北京】,名称为 “FuncInvoked”,并用于被调用的 Node.js 云函数。该云函数内容如下:
'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
};
在 testNodejsSDK
目录下新建文件 index.js
,并输入如下示例代码,创建发起调用的 Node.js 云函数。
const { SDK, LogType } = require('tencentcloud-serverless-nodejs')
exports.main_handler = async (event, context) => {
context.callbackWaitsForEmptyEventLoop = false
const sdk = new SDK({
region:'ap-beijing'
}) //如果在云函数中运行并且绑定了有SCF调用资格的运行角色,会默认取环境变量中的鉴权信息
const res = await sdk.invoke({
functionName: 'FuncInvoked',
logType: LogType.Tail,
data: {
name: 'test',
role: 'test_role'
}
})
console.log(res)
// return res
}
其中主要参数获取途径如下:
FuncInvoked
函数为例。$LATEST
。详情请参见 查看版本。default
。详情请参见 命名空间管理。创建一个地域为【成都】,名称为 “NodejsInvokeTest”,并用于调用的 Node.js 云函数。该云函数主要设置信息如下:
testNodejsSDK
目录下的所有文件压缩为 zip 格式,并上传到云端。在 云函数控制台 中的函数详情页面,通过进入函数代码子页面,单击【运行】,测试运行函数。输出结果如下:
"Already invoked a function!"
创建一个地域为【北京】,名称为 “FuncInvoked”,并且用于被调用的 Node.js 云函数。该云函数内容如下:
'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
};
在 testNodejsSDK
目录下新建文件 index.js
,作为发起调用的 Node.js 云函数,并输入如下示例代码:
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'
}) //如果在云函数中运行并且绑定了有SCF调用资格的运行角色,会默认取环境变量中的鉴权信息
const res = await sdk.invoke({
functionName: 'FuncInvoked',
logType: LogType.Tail,
data: {
name: 'test',
role: 'test_role'
}
})
console.log(res)
// return res
}
注意secretId 及 secretKey:指云 API 的密钥 ID 和密钥 Key。您可以通过登录 访问管理控制台,选择【访问密钥】>【API 密钥管理】,获取相关密钥或创建相关密钥。
进入 index.js 所在文件目录,执行以下命令,查看结果。
Linux 及 Mac 操作系统,执行以下命令:
export NODE_ENV=development && node index.js
Windows 操作系统执行以下命令:
set NODE_ENV=development && node index.js
输出结果如下:
prepare to invoke a function!
{"key":"value"}
Already invoked a function!
在使用 SDK 前,建议执行 npm init
命令进行初始化 SDK。
说明:
- 初始化命令可传入
region
,secretId
,secretKey
参数。- 完成初始化后,调用 API 接口时可复用初始化的配置。
参数信息:
参数名 | 是否必填 | 类型 | 描述 |
---|---|---|---|
region | 否 | String |
地域 |
secretId | 否 | String |
默认会取 process.env.TENCENTCLOUD_SECRETID |
secretKey | 否 | String |
默认会取 process.env.TENCENTCLOUD_SECRETKEY |
token | 否 | String |
默认会取 process.env.TENCENTCLOUD_SESSIONTOKEN |
调用函数,目前支持同步调用。
参数信息:
参数名 | 是否必填 | 类型 | 描述 |
---|---|---|---|
functionName | 是 | String |
函数名称 |
qualifier | 否 | String |
函数版本,默认为 $LATEST |
data | 否 | String |
函数运行入参 |
namespace | 否 | String |
命名空间,默认为 default |
region | 否 | String |
地域 |
secretId | 否 | String |
默认会取 process.env.TENCENTCLOUD_SECRETID |
secretKey | 否 | String |
默认会取 process.env.TENCENTCLOUD_SECRETKEY |
token | 否 | String |
默认会取 process.env.TENCENTCLOUD_SESSIONTOKEN |
01 传统数据基础架构 如图1-1所示,传统单体数据架构(Monolithic Architecture)...
1.选择服务器租用时,要先考虑网站需要的应用服务,然后确定服务需要的硬件和软...
1. 接口描述 接口请求域名: iai.tencentcloudapi.com 。 给定一张人脸图片和一...
【Why 为什么要强调填写用户反馈的重要性】 用户反馈是文档团队触达用户痛点的路...
NAT服务器允许一个整体机构以一个公用IP(Internet Protocol)地址出现在Interne...
本文列出了JVM启动参数相关信息。 调优栈内存 表 1. 堆大小典型配置参数 配置参...
C#反射的入门学习首先要明白C#反射提供了封装程序集、模块和类型的对象等等。那...
在NT服务器中设置FTP服务器的方法一般有两种:一种是用微软公司自己提供的Intern...
背景 随着IT数字化发展 企业级业务量不断增加 产生的日志量也逐渐加大 由此产生...
1. 接口描述 接口请求域名: vpc.tencentcloudapi.com 。 本接口(ResetVpnConnec...