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
联系我们
词汇表

SDK文档

PDF
聚焦模式
字号
最后更新时间: 2024-12-02 20:36:46

开发准备

安装 SDK 前,需要先获取安全凭证。在第一次使用云 API 之前,用户首先需要在腾讯云控制台上申请安全凭证,安全凭证包括 SecretId 和 SecretKey。SecretId 是用于标识 API 调用者的身份,SecretKey 是用于加密签名字符串和服务器端验证签名字符串的密钥。SecretKey 必须严格保管,避免泄露。

安装 SDK

API

SCF 常用的 API 如下,更多 API 可参考 API 文档
接口名称
接口功能
创建函数
删除函数
获取函数详细信息
运行函数
获取函数列表
更新函数代码
更新函数配置

使用示例

Python
Node.js
PHP
Python3.6 为例:

# -*- coding: utf8 -*-

import json
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入对应产品模块的client models
from tencentcloud.scf.v20180416 import scf_client,models

# 对应接口的接口名
action = 'Invoke'

# 接口参数,输入需要调用的函数名,RequestResponse(同步) 和 Event(异步)
action_params = {
'FunctionName': "function-name",
'InvocationType': "Event"
}

print('Start SCF')

def main_handler(event, context):
try:
# 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
cred = credential.Credential("SecretId", "SecretKey")

# 实例化要请求产品的client对象,以及函数所在的地域
client = scf_client.ScfClient(cred, "ap-shanghai")

# 调用接口,发起请求,并打印返回结果
ret = client.call(action, action_params)

print(json.loads(ret)["Response"]["Result"]["RetMsg"])

except TencentCloudSDKException as err:
print(err)


Node.js12.16 为例:
说明:
如果在层中使用 SDK,请在代码中指定绝对路径,即 /opt/node_modules/tencentcloud-sdk-nodejs
'use strict';
const tencentcloud = require("/var/user/node_modules/tencentcloud-sdk-nodejs");
// 导入对应产品模块的client models。
const ScfClient = tencentcloud.scf.v20180416.Client;
const models = tencentcloud.scf.v20180416.Models;

const clientConfig = {
// 腾讯云认证信息
credential: {
secretId: "secretId",
secretKey: "secretKey",
},
// 产品地域
region: "ap-beijing",
profile:{}
}

exports.main_handler = (event, context) => {
console.log(event)
// console.log(context)

// 实例化要请求产品的client对象,以及函数所在的地域
const client = new ScfClient(clientConfig);

console.log("Start SCF")
// 通过client对象调用想要访问的接口,需要传入请求对象以及响应回调函数
client.Invoke({"FunctionName":"function-name","InvocationType":"Event"}, function(err, response) {
// 请求异常返回,打印异常信息
if (err) {
console.log(err);
return;
}
// 请求正常返回,打印response对象
console.log("success");
});
};


SCF 内置 SDK 使用示例

不同版本 Node.js 运行环境内置的 tencentcloud-sdk-nodejs 版本有差异,具体版本信息请参考Node.js环境内置库
Node.js12.16 为例:
'use strict';

const tencentcloud = require("tencentcloud-sdk-nodejs");
const Credential = tencentcloud.common.Credential;

// 导入对应产品模块的client models。
const ScfClient = tencentcloud.scf.v20180416.Client;
const models = tencentcloud.scf.v20180416.Models;

exports.main_handler = (event, context) = {
console.log(event)
// console.log(context)

// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
let cred = new Credential("SecretId", "SecretKey");

// 实例化要请求产品的client对象,以及函数所在的地域
let client = new ScfClient(cred, "ap-beijing");

// 实例化一个请求对象,调用invoke()
console.log("Start SCF")
let request = new models.InvokeRequest();
// 接口参数,输入需要调用的函数名,RequestResponse(同步) 和 Event(异步)
let params = '{"FunctionName":"function-name", "InvocationType":"Event"}'
request.from_json_string(params);
// 通过client对象调用想要访问的接口,需要传入请求对象以及响应回调函数
client.Invoke(request, function(err, response) {
// 请求异常返回,打印异常信息
if (err) {
console.log(err);
return;
}
// 请求正常返回,打印response对象
console.log(response.to_json_string());
});
};

示例如下:
<?php
require_once '/var/user/tencentcloud-sdk-php/TCloudAutoLoader.php'; #注意引用路径
use TencentCloud\\Common\\Credential;
use TencentCloud\\Common\\Profile\\ClientProfile;
use TencentCloud\\Common\\Profile\\HttpProfile;
use TencentCloud\\Common\\Exception\\TencentCloudSDKException;
use TencentCloud\\Scf\\V20180416\\ScfClient;
use TencentCloud\\Scf\\V20180416\\Models\\InvokeRequest;
function main_handler($event, $context) {
print "good";
print "\\n";
var_dump($event);
var_dump($context);
try {
// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey
$cred = new Credential("SecretId", "SecretKey");
$httpProfile = new HttpProfile();
$httpProfile->setEndpoint("scf.tencentcloudapi.com");

$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
// 实例化要请求产品的client对象,以及函数所在的地域
$client = new ScfClient($cred, "ap-shanghai", $clientProfile);
$req = new InvokeRequest();
// 接口参数,输入需要调用的函数名,RequestResponse(同步) 和 Event(异步)
$params = '{"FunctionName":"function-name", "InvocationType":"Event"}';
$req->fromJsonString($params);
$resp = $client->Invoke($req);
print_r($resp->toJsonString());
}
catch(TencentCloudSDKException $e) {
echo $e;
}
return "hello";
}
?>


打包部署

如果需要在云函数控制台中部署函数,并使用 SDK 调用其他函数,则需要把 tencentcloud 的库和函数代码一起打包成 zip 文件。
注意在控制台创建函数时的执行方法,需要和 zip 文件里的代码文件和执行函数对应。
最终生成的 zip 包如果大于50MB,需要通过 COS 上传。
云 API 默认限频为每秒20次,如需提升并发上限,可以 提交工单 申请。

API Explorer

API Explorer 提供了在线调用、签名验证、 SDK 代码生成和快速检索接口等能力,能显著降低使用云 API 的难度。

相关信息

您也可以使用腾讯云云函数 SDK(Tencentserverless SDK),该 SDK 集成云函数业务流接口,简化云函数的调用方法,使您无需再进行公有云 API 接口的封装。详情请参见 函数间调用 SDK

帮助和支持

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

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

文档反馈