本文将讲述如何使用 Serverless Cloud Function 开发语言翻译工具。
SCF简述
腾讯云云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码, 是实时文件处理和数据处理等场景下理想的计算平台。您只需使用 SCF 平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。
备注:已注册腾讯云账户。若未注册腾讯云账户,可 点此 进入注册页面。
申请腾讯云“机器翻译”
在腾讯云官网“云产品”列表中点击选择“自然语言处理”的“机器翻译”,点击选择“免费试用”,如下图所示:
获取 SecretId 和 SecretKey
点击控制台界面右上角“头像”的“账号信息”,进入账号中心界面后,点击“访问管理”进入访问管理界面。
查看“访问密钥”便签下的“API密钥管理”界面,若没有生成过 API 密钥,则点击“新建密钥”按钮生成密钥。
机器翻译 API 的调用
代码如下:
代码语言:txt复制const tencentcloud = require("tencentcloud-sdk-nodejs");
const TmtClient = tencentcloud.tmt.v20180321.Client;
const Credential = tencentcloud.common.Credential;
const ClientProfile = tencentcloud.common.ClientProfile;
const HttpProfile = tencentcloud.common.HttpProfile;
// 此处填写上面获取到的 SecretId 和 SecretKey
const SecretId = 'XXXXXXXX';
const SecretKey = 'XXXXXXXX';
let cred = new Credential(SecretId, SecretKey);
let httpProfile = new HttpProfile();
httpProfile.endpoint = "tmt.tencentcloudapi.com";
let clientProfile = new ClientProfile();
clientProfile.httpProfile = httpProfile;
let client = new TmtClient(cred, "ap-guangzhou", clientProfile);
client.TextTranslate({
SourceText: 'hello, world.',
Source: 'en',
Target: 'zh',
ProjectId: 0,
}, function (errMsg, response) {
if (errMsg) {
console.error(errMsg);
} else {
console.log(response);
}
});
申请腾讯云云函数
在腾讯云官网“云产品”列表中点击选择“Serverless”的“云函数”
创建函数服务
点击“函数服务”进入函数服务界面,如下图所示:
基本信息填写页面
点击“新建”按钮,选择“Nodejs”运行环境,创建“空白函数”,如下图所示:
函数配置填写页面
点击“下一步”按钮,进入“函数配置”界面,如下图所示:
配置 package.json 文件
在“Cloud Studio”编辑界面的文件目录单击“右键”选择“新建文件”按钮生成“package.json”文件(点击Enter键生成)
输入如下代码:
代码语言:txt复制{
"name": "hello-world",
"version": "1.0.0",
"description": "",
"main": "index.js",
"directories": {
"test": "test"
},
"scripts": {
"test": "echo "Error: no test specified" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"tencentcloud-sdk-nodejs": "^3.0.187"
}
}
配置 index.js 文件
删除 index.js 原有的代码,将下面代码复制上去。
代码语言:txt复制注意: 需要填写上面获取到的 SecretId 和 SecretKey,“机器翻译” API 调用需要用到。
'use strict'
const tencentcloud = require("tencentcloud-sdk-nodejs");
const fs = require('fs')
const path = require('path')
const TmtClient = tencentcloud.tmt.v20180321.Client;
const Credential = tencentcloud.common.Credential;
const ClientProfile = tencentcloud.common.ClientProfile;
const HttpProfile = tencentcloud.common.HttpProfile;
const SecretId = 'XXXXXXXXXX';
const SecretKey = 'XXXXXXXXXX';
let cred = new Credential(SecretId, SecretKey);
let httpProfile = new HttpProfile();
httpProfile.endpoint = "tmt.tencentcloudapi.com";
let clientProfile = new ClientProfile();
clientProfile.httpProfile = httpProfile;
let client = new TmtClient(cred, "ap-guangzhou", clientProfile);
const textTranslate = (params) => {
return new Promise((resolve, reject) => {
client.TextTranslate(params, function (errMsg, response) {
if (errMsg) {
reject(errMsg);
} else {
resolve(response);
}
});
});
}
const render = (tpl, variables) => {
for (let key in variables) {
const reg = new RegExp('\$\{' key '\}', 'g')
tpl = tpl.replace(reg, variables[key])
}
return tpl;
};
exports.main_handler = async (event, context, callback) => {
const query = event.queryString || {};
const sourceText = query.q;
let res = await textTranslate({
SourceText: sourceText,
Source: 'en',
Target: 'zh',
ProjectId: 0,
});
res.SourceText = sourceText;
let html = fs.readFileSync(path.resolve(__dirname, './index.html'), {
encoding: 'utf-8'
});
html = render(html, res);
return {
isBase64Encoded: false,
statusCode: 200,
headers: { 'Content-Type': 'text/html' },
body: html
}
}
配置 index.html 文件
在“Cloud Studio”编辑界面的文件目录单击“右键”选择“新建文件”按钮生成“index.html”文件(点击Enter键生成)
输入如下代码:
代码语言:txt复制<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>腾讯云-机器翻译</title>
<style>
table{
width: 100%;
text-align: center;
}
</style>
</head>
<body>
<table border="1">
<tr>
<th>语言种类</th>
<th>文字信息</th>
</tr>
<tr>
<td>${Source}</td>
<td>${SourceText}</td>
</tr>
<tr>
<td>${Target}</td>
<td>${TargetText}</td>
</tr>
</table>
</body>
</html>
上传方式选择“在线安装依赖”,点击“完成”按钮。
至此,我们就创建好了云函数的函数服务。
使用 API 访问
点击“触发管理”进入触发管理界面,点击“创建触发器”按钮,如下图所示:
触发方式选择“API网关触发器”,勾选“启用集成响应”。点击“提交”按钮,即生成“API网关触发器”。
如上图所示的“访问路径”即接口地址。
访问云函数的语言翻译 API
访问接口查询“hello, world.”的翻译:
https://service-2fihgccs-1253513412.gz.apigw.tencentcs.com/release/hello-world?q=hello, world.
访问接口查询“Life is short and you deserve to be happy.”的翻译:
http://service-2fihgccs-1253513412.gz.apigw.tencentcs.com/release/hello-world?q=Life is short and you deserve to be happy。
参考资料
- 腾讯云-云函数文档
- 腾讯云-机器翻译文档