tencent cloud

云函数

动态与公告
产品动态
产品公告
新手指引
产品简介
产品概述
相关概念
工作原理
产品优势
应用场景
相关产品
购买指南
计费概述
计费方式
计费项与计费方式
函数算力支持
免费额度
产品定价
计费示例
欠费与停服说明
快速入门
使用控制台创建一个事件函数
操作指南
配额管理
函数管理
Web 函数管理
日志管理
并发管理
触发器管理
函数 URL
自定义域名
版本管理
别名管理
权限管理
运行实例管理
插件管理
监控与告警管理
网络配置
层管理
执行配置
扩展存储管理
DNS 缓存配置
资源托管模式管理
近离线资源托管模式
工作流
触发器
触发器概述
触发器事件消息结构汇总
API 网关触发器
COS 触发器
CLS 触发器
定时触发器
CKafka 触发器
Apache Kafka 触发器
MQTT 触发器
触发器配置描述
MPS 触发器
CLB 触发器说明
云 API 触发器
开发指南
基本概念
测试云函数
环境变量
依赖安装
使用容器镜像
使用 Docker 安装依赖
错误类型与重试策略
死信队列
云函数接入数据库
自动化部署
云函数状态码
常见错误码解决方法
开发者工具
Serverless Web IDE
函数间调用 SDK
第三方工具
代码开发
Python
Node.js
Golang
PHP
Java
Custom Runtime
使用镜像部署函数
Web 框架部署
通过命令行完成框架部署
快速部署 Egg 框架
快速部署 Express 框架
快速部署 Flask 框架
快速部署 Koa 框架
快速部署 Laravel 框架
快速部署 Nestjs 框架
快速部署 Nextjs 框架
快速部署 Nuxtjs 框架
快速部署 Django 框架
实践教程
最佳实践概述
云产品联合解决方案
业务开发相关实践
实时音视频 TRTC
对象存储 COS
消息队列 CKafka
日志服务CLS
负载均衡 CLB
视频处理 MPS
内容分发网络 CDN
云数据仓库 PostgreSQL
云点播 VOD
短信 SMS
Elasticsearch Service
定时任务
视频处理
客户案例
腾讯在线教育
在线教育行业案例
游戏聊天系统
腾讯互娱国际(IEGG)
API 文档
History
Introduction
API Category
Making API Requests
Other APIs
Namespace APIs
Layer Management APIs
Async Event Management APIs
Trigger APIs
Function APIs
函数和层的状态说明
Data Types
Error Codes
SDK文档
常见问题
通用问题
Web 函数相关问题
计费相关问题
网络相关问题
日志相关问题
SCF 工具相关问题
事件处理相关问题
API 网关触发器相关问题
相关协议
Service Level Agreement
联系我们
词汇表

Node.js SDK

PDF
聚焦模式
字号
最后更新时间: 2024-04-22 17:54:01

Tencentcloud-Serverless-Nodejs SDK 简介

Tencentcloud-Serverless-Nodejs 是腾讯云云函数 SDK,集成云函数业务流接口,简化云函数的调用方法。在使用该 SDK 的情况下,用户可以方便的从本地、云服务器(CVM)、容器、以及云端函数里快速调用某一个云函数,无需再进行公有云 API 的接口封装。

功能特性

Tencentcloud-Serverless-Nodejs SDK 的功能特性可分为以下几点:
高性能,低时延的进行函数调用。
填写必须的参数后,即可快速进行函数间的调用(SDK 会默认获取环境变量中的参数,例如 region,secretId 等)。
支持内网域名的访问。
支持 keepalive 能力。
支持跨地域函数调用。
说明:
函数间调用 SDK 仅适用于事件函数,Web 函数可通过在函数代码中请求 Web 函数对应路径的方式发起调用。

快速开始

开发准备

开发环境 已安装 Node.js 8.9 及以上版本。
运行环境 已安装 tencentcloud-serverless-nodejs SDK,支持 Windows、Linux 和 Mac 操作系统。
建议使用 Serverless Cloud Framework,可快速部署本地云函数。

安装 tencentcloud-serverless-nodejs SDK

通过 npm 安装(推荐)

1. 根据实际需求,选择目录路径,并在该路径下创建新的目录。 例如,创建一个名称为 testNodejsSDK 的项目目录,项目路径为 /Users/xxx/Desktop/testNodejsSDK
2. 进入 testNodejsSDK 目录,并依次执行以下命令,安装 tencentcloud-serverless-nodejs SDK。
npm init -y
npm install tencentcloud-serverless-nodejs
安装完成后,在 testNodejsSDK 目录下可以查看到 node_modulespackage.jsonpackage-lock.json

通过源码包安装

前往 Github 代码托管地址 下载最新源码包,解压源码包后进行安装。

使用云函数在线依赖安装

使用 云函数在线依赖安装,在 package.json 中执行以下命令并进行安装。
{
"dependencies": {
"tencentcloud-serverless-nodejs":"*"
}
}

云端函数互调

示例

注意:
不同地域下的函数互调,须指定地域,命名规则参见 地域列表
如果不指定地域,默认为同地域下函数互调。
命名空间不指定,默认为 default。
需要打开调用方函数外网访问权限。
如果没有手动传入 secretId 和 secretKey 等参数,函数需绑定有 SCF Invoke 权限(或者包含 SCF Invoke,例如 SCF FullAccess)的角色,可参考 创建函数运行角色
1. 创建一个地域为北京,名称为 “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
};
2. 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
}

其中主要参数获取途径如下:
region被调用云函数所在地域,本文以 步骤1 中的北京地域为例。
functionName被调用云函数名称,本文以 步骤1 中已创建的 FuncInvoked 函数为例。
qualifier被调用云函数版本,如未指定则默认使用 $LATEST。详情请参见 查看版本
namespace被调用云函数所在命名空间, 如未指定则默认 default
data:传递给被调用云函数的数据,被调用的云函数可以从 event 入参中读取此数据。
3. 创建一个地域为成都,名称为 “NodejsInvokeTest”,并用于调用的 Node.js 云函数。该云函数主要设置信息如下:
执行方法:选择index.main_handler
代码提交方式:选择本地上传 zip 包。 将 testNodejsSDK 目录下的所有文件压缩为 zip 格式,并上传到云端。
4. 在 Serverless 控制台 单击新建的云函数,进入函数管理的代码编辑页面,然后单击测试,运行函数。输出结果如下:
"Already invoked a function!"

本地调用云端函数

示例

1. 创建一个地域为北京,名称为 “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
};
2. 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 密钥管理,获取相关密钥或创建相关密钥。
3. 进入 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!

接口列表

API Reference



Init

在使用 SDK 前,建议执行 npm init 命令进行初始化 SDK。
说明:
初始化命令可传入 regionsecretIdsecretKey参数。
完成初始化后,调用 API 接口时可复用初始化的配置。
参数信息:
参数名
是否必填
类型
描述
region
String
地域
secretId
String
默认会取 process.env.TENCENTCLOUD_SECRETID
secretKey
String
默认会取 process.env.TENCENTCLOUD_SECRETKEY
token
String
默认会取 process.env.TENCENTCLOUD_SESSIONTOKEN


Invoke

调用函数,目前支持同步调用。
参数信息:
参数名
是否必填
类型
描述
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

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈