开发准备
安装 SDK 前,需要先获取安全凭证。在第一次使用云 API 之前,用户首先需要在腾讯云控制台上申请安全凭证,安全凭证包括 SecretId 和 SecretKey。SecretId 是用于标识 API 调用者的身份,SecretKey 是用于加密签名字符串和服务器端验证签名字符串的密钥。SecretKey 必须严格保管,避免泄露。
安装 SDK
API
SCF 常用的 API 如下,更多 API 可参考 API 文档。
使用示例
以 Python3.6
为例:
import json
from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
from tencentcloud.scf.v20180416 import scf_client,models
action = 'Invoke'
action_params = {
'FunctionName': "function-name",
'InvocationType': "Event"
}
print('Start SCF')
def main_handler(event, context):
try:
cred = credential.Credential("SecretId", "SecretKey")
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");
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)
const client = new ScfClient(clientConfig);
console.log("Start SCF")
client.Invoke({"FunctionName":"function-name","InvocationType":"Event"}, function(err, response) {
if (err) {
console.log(err);
return;
}
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;
const ScfClient = tencentcloud.scf.v20180416.Client;
const models = tencentcloud.scf.v20180416.Models;
exports.main_handler = (event, context) = {
console.log(event)
let cred = new Credential("SecretId", "SecretKey");
let client = new ScfClient(cred, "ap-beijing");
console.log("Start SCF")
let request = new models.InvokeRequest();
let params = '{"FunctionName":"function-name", "InvocationType":"Event"}'
request.from_json_string(params);
client.Invoke(request, function(err, response) {
if (err) {
console.log(err);
return;
}
console.log(response.to_json_string());
});
};
示例如下:
<!--?php
require_once '/var/user/tencentcloud-sdk-php/TCloudAutoLoader.php'; use TencentCloud<span class="hljs-title">Common<span class="hljs-title">Credential;
use TencentCloud<span class="hljs-title">Common<span class="hljs-title">Profile<span class="hljs-title">ClientProfile;
use TencentCloud<span class="hljs-title">Common<span class="hljs-title">Profile<span class="hljs-title">HttpProfile;
use TencentCloud<span class="hljs-title">Common<span class="hljs-title">Exception<span class="hljs-title">TencentCloudSDKException;
use TencentCloud<span class="hljs-title">Scf<span class="hljs-title">V20180416<span class="hljs-title">ScfClient;
use TencentCloud<span class="hljs-title">Scf<span class="hljs-title">V20180416<span class="hljs-title">Models<span class="hljs-title">InvokeRequest;
function main_handler($event, $context) {
print "good";
print "\n";
var_dump($event);
var_dump($context);
try {
$cred = new Credential("SecretId", "SecretKey");
$httpProfile = new HttpProfile();
$httpProfile--->setEndpoint("scf.tencentcloudapi.com");
$clientProfile = new ClientProfile();
$clientProfile->setHttpProfile($httpProfile);
$client = new ScfClient($cred, "ap-shanghai", $clientProfile);
$req = new InvokeRequest();
$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。
本页内容是否解决了您的问题?