百度 CFC (Cloud Function Compute) 是百度开放云 BCE (Baidu Cloud Engine)提供基于事件机制,弹性、高可用、扩展性好、极速响应的云端无服务器计算能力。您可以仅关注业务逻辑的代码部分,无需关注和配置服务器资源,支持多种函数触发器,满足多样化的事件触发场景。
CfcClient是CFC服务的javascript客户端,为调用者与CFC服务进行交互提供了一系列的方法。
import {CfcClient} from 'bce-sdk-js'
var config = { endpoint: 'http://cfc.bj.baidubce.com', credentials: { ak: '您的ak', sk: '您的sk' } }; var client = new CfcClient(config);
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名 |
logToBody | Boolean | 否 | Query参数 | true把日志打印到返回 |
invocationType | String | 是 | Query参数 | Event(无返回)/RequestResponse(同步返回)/DryRun(测试函数) |
logType | String | 否 | Query参数 | 日志类型 Tail / None |
Qualifier | String | 否 | Query参数 | 默认为$LATEST 可选别名和版本 |
Request Body json数据格式,作为input参数调用函数
``` //自定义参数 { "key3": "value3", "key2": "value2", "key1": "value1" } ```
如下代码可以调用函数:
var functionName = <functionName>; // 指定function的名称 var invoke_body = { "key3": "value3", "key2": "value2", "key1": "value1" }; var invoke_options = { "logToBody": "false", "invocationType": "RequestResponse", "logType": "None", "Qualifier": "$LATEST" }; client.invocations(functionName,invoke_body,invoke_options) .then(function (response) { // 执行函数 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 | |
---|---|---|---|---|---|
ZipFile | blob | 是 | RequestBody参数 | 您要发布的zip包的 base64-encoded 注意zip包压缩目录的内容,而不是目录本身 | |
Publish | Boolean | 否 | RequestBody参数 | 是否直接发布版本 | |
Description | String | 否 | RequestBody参数 | 一个简短的说明 0-256字符 | |
Environment | Environment | 否 | RequestBody参数 | 环境变量 | |
FunctionName | String | 是 | RequestBody参数 | 函数名 1-140字符 | |
Handler | String | 是 | RequestBody参数 | cfc调用的入口函数,对于node为module-name.export eg. index.handler | |
MemorySize | int | 否 | RequestBody参数 | 内存大小 现在为128固定 | |
Region | String | 否 | RequestBody参数 | 地址 bj | |
Runtime | String | 是 | RequestBody参数 | 运行语言 python2 nodejs6.11 | |
Timeout | int | 是 | RequestBody参数 | 超时时间 1-300 最大300 |
如下代码可以创建函数:
var body = { "Code": { "ZipFile": "UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXguanNKrSjILyop1stIzEvJSS1SsFXQSC1LzSvRUUjOzytJrQAxEnNykhKTszUVbO0UqrkUFBTgQhp5pTk5OgpgHdFKiUqxmtZctdaAAAAA//9QSwcI9fw51k4AAABUAAAAUEsBAhQAFAAIAAgAAAAAAPX8OdZOAAAAVAAAAAgAAAAAAAAAAAAAAAAAAAAAAGluZGV4LmpzUEsFBgAAAAABAAEANgAAAIQAAAAAAA==", "Publish": false, }, "Description": "bce_sdk_test", "Region": "bj", "Timeout": 3, "FunctionName": "bce_sdk_test", "Handler": "index.handler", "Runtime": "nodejs6.11", "MemorySize": 128, "Environment": { "Variables": { "a": "b", } } }; client.createFunction(body).then(function (response) { // 创建函数 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionVersion | String | 否 | Query参数 | 函数版本 |
page | int | 否 | Query参数 | 页号 |
pageSize | int | 否 | Query参数 | 页面大小 |
Marker | int | 否 | Query参数 | |
MaxItems | int | 否 | 最大数目 | 1-10000 |
如下代码可以创建函数:
var options = {}; options.marker = 10; client.listFunctions(options).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
Qualifier | String | 否 | Query参数 | 默认为$LATEST 可选别名和版本 |
如下代码可以获取函数:
var functionName = <functionName>; client.getFunction(functionName).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
如下代码可以删除函数:
var functionName = <functionName>; client.deleteFunction(functionName).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
ZipFile | String | 否 | body参数 | Base64-encoded binary data object |
Publish | String | 否 | body参数 | 是否直接发布 |
DryRun | String | 否 | body参数 | 这个布尔参数可用于测试您对cfc的请求,以更新cfc函数,并将一个版本作为原子操作发布。它将对你的代码进行所有必要的计算和验证,但是不会上传它或者发布一个版本。每次调用该操作时,所提供代码的CodeSha256散列值也将在响应中计算并返回。 暂未支持 |
如下代码可以更新指定function代码:
var functionName = <functionName>; var code = { "ZipFile": "UEsDBBQACAAIAAAAAAAAAAAAAAAAAAAAAAAIAAAAaW5kZXguanNKrSjILyop1stIzEvJSS1SsFXQSC1LzSvRUUjOzytJrQAxEnNykhKTszUVbO0UqrkUFBTgQhp5pTk5OgpgHdFKiUqxmtZctdaAAAAA//9QSwcI9fw51k4AAABUAAAAUEsBAhQAFAAIAAgAAAAAAPX8OdZOAAAAVAAAAAgAAAAAAAAAAAAAAAAAAAAAAGluZGV4LmpzUEsFBgAAAAABAAEANgAAAIQAAAAAAA==", "Publish": false, "DryRun": true } client.updateFunctionCode(functionName, code).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
Qualifier | String | 否 | Query参数 | 默认为$LATEST 可选别名和版本 |
如下代码可以获取指定函数配置:
var functionName = <functionName>; var option = { "Qualifier": "1" }; client.getFunctionConfiguration(functionName, option).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
Qualifier | String | 否 | Query参数 | 函数版本 只有$LATEST才能修改 |
Timeout | int | 否 | body参数 | 超时时间 |
Handler | String | 否 | body参数 | 入口 |
Runtime | String | 否 | body参数 | 运行语言 python2 nodejs6.11 |
Environment | Environment | 否 | body参数 | 环境变量 |
如下代码可以获取指定函数配置:
var functionName = <functionName>; var body = { "Description": "bce_sdk_test", "Region": "bj", "Timeout": 3, "FunctionName": "bce_sdk_test", "Handler": "index.handler", "Runtime": "nodejs6.11", "MemorySize": 128, "Environment": { "Variables": { "a": "b", } } }; client.updateFunctionConfiguration(functionName, body).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
Marker | int | 否 | Query参数 | 标记 |
MaxItems | int | 否 | Query参数 | 最大数目 1-10000 |
如下代码可以获取指定函数配置:
var functionName = <functionName>; var opt_options = { "Marker":0, "MaxItems":10 }; client.listVersionsByFunction(functionName, opt_options).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 | |
---|---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 | |
Description | string | 否 | body参数 | 版本描述 |
如下代码可以发布函数版本:
var functionName = <functionName>; client.publishVersion(functionName, "description").then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
FunctionVersion | String | 是 | Query参数 | 函数版本 |
Marker | int | 否 | Query参数 | 标记 |
MaxItems | int | 否 | Query参数 | 最大数目 1-10000 |
如下代码可以发布函数版本:
var opt_options = { "Marker":0, "MaxItems":10, "FunctionVersion":"1" }; var functionName = <functionName>; client.listAliases(functionName, "description").then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 | |
---|---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 | |
FunctionVersion | String | 是 | body参数 | 别名指向函数版本 可以设置为$LATEST | |
Name | String | 是 | body参数 | 别名名称 | |
Description | string | 否 | body参数 | 别名描述 |
如下代码可以创建别名:
var body = { "FunctionVersion": "string", "Name": "string", "Description": "string" } var functionName = <functionName>; client.createAlias(functionName, body).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
aliasName | String | 是 | path参数 | 别名名称 |
FunctionName | String | 是 | path参数 | 函数名称 |
如下代码可以创建别名:
var functionName = <functionName>; var aliasName = <aliasName> client.getAlias(functionName, aliasName).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 | |
---|---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 | |
FunctionVersion | String | 是 | body参数 | 别名指向函数版本 可以设置为$LATEST | |
Description | string | 否 | body参数 | 别名描述 |
如下代码可以修改别名:
var functionName = <functionName>; var aliasName = <aliasName> var body = { "FunctionVersion": "string", "Description": "string" } client.updateAlias(functionName, aliasName, body).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });
描述
<b>请求参数<b>
参数名称 | 类型 | 是否必需 | 参数位置 | 描述 |
---|---|---|---|---|
FunctionName | String | 是 | path参数 | 函数名称 |
aliaName | String | 是 | path参数 | 别名名称 |
如下代码可以删除别名:
var functionName = <functionName>; var aliasName = <aliasName> client.deleteAlias(functionName, aliasName).then(function (response) { // 执行成功 console.log(response.body) }) .catch(function (error) { // 执行失败 });