上云无忧 > 文档中心 > 百度智能云函数计算 CFC Node.js 示例
函数计算CFC
百度智能云函数计算 CFC Node.js 示例

文档简介:
目前CFC支持的Node.js开发语言包括如下版本: Node.js 12.2 Node.js 10.15 Node.js 8.5(已下线,目前存量Node.js 8.5函数仍可运行,但无法创建该运行时的新CFC函数) 函数代码 一个简单的Node.js函数示例代码如下所示: exports.handler = (event, context, callback) => { callback(null, "Hello world!"); };
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

目前CFC支持的Node.js开发语言包括如下版本:

  • Node.js 12.2
  • Node.js 10.15
  • Node.js 8.5(已下线,目前存量Node.js 8.5函数仍可运行,但无法创建该运行时的新CFC函数)

函数代码

一个简单的Node.js函数示例代码如下所示:

exports.handler = (event, context, callback) => {
    callback(null, "Hello world!");
};

执行函数

在创建CFC函数时,需要指定处理程序以让CFC能够找到入口函数。 对于Node.js函数, 处理程序为您函数中的"module-name.export"值,例如,填写"index.handler"则表示调用的是index.js中的export.handler函数。 

入参

Node.js函数入参包括event, context和callback,其中callback是可选参数

  • event参数: 您调用本函数时传入的事件数据,其数据类型是一个object
  • context参数: CFC向函数提供的运行时信息, 其数据类型是一个object
  • callback参数(可选):该参数用于返回信息。

返回信息

Node.js采用异步编程模型,您的函数需要使用callback入参返回信息。callback的语法如下:

callback(Error error, Object result);

其中:

  • error(可选参数): 在函数执行内部失败时使用此参数返回错误信息,成功的情况下设置为null。
  • result(可选参数): 使用此参数返回函数的执行结果。result可以是任意类型。
  • 您的函数在callback被调用后立即返回,重复调用 callback 只接受第一次调用的结果。需要确保所有任务在 callback 调用之前完成,否则有些任务可能不会被运行。例如调用下面的函数,将返回 hello world。
exports.handler = (event, context, callback) => {
  callback(null, 'hello world');
  callback(null, 'done');
};

该函数的返回结果如下:

  • 如果你的函数里未调用callback,则函数执行将会超时。
exports.handler = (event, context, callback) => {
   console.log('hello world');
};

该函数示例代码执行结果如下:

注意:CFC函数根据您选择的触发器的不同,函数调用方式也不同,对函数的返回结果的处理方式不同。

  • 同步调用(RequestResponse): 使用同步调用时,结果会以序列化的JSON格式返回, 调用方可以根据返回值进行后续处理。
  • 异步调用(Event): 异步调用时,调用方法触发函数后立即返回,函数返回值会被丢弃。

异常处理

如上对callback入参的说明,您可以使用callback的第一个参数返回错误,如:

exports.handler = (event, context, callback) => {
    callback(new Error('myError'))
};

该函数的返回结果如下:

日志

您可以在程序中使用如下语句来完成日志输出:

  • console.log()

使用内置模块

函数计算的Node.js运行环境包含了Node.js标准模块,您可以直接引用这些模块。

使用自定义模块

如果您需要使用自定义模块,则需要将您的自定义模块与代码一起打包上传,您可以通过以下方式进行依赖管理。

使用BSAM-CLI本地开发工具

BSAM_CLI 工具使用说明见链接,您可以使用该工具创建一个Node.js应用,本地编写并调试代码后进行打包上传。

// init命令初始化一个工作目录,指定runtime为nodejs10
$ bsam init --runtime nodejs10
// 若您的函数依赖第三方库,BSAM CLI可帮您自动安装这些依赖
$ bsam local install 
// 在本地开发和测试完函数后,可以使用bsam package和bsam deploy命令部署到CFC
$ bsam package
$ bsam deploy

使用Baidu Serverless VSCode 插件

Baidu Serverless VSCode Extension 是百度云 Serverless 产品 CFC 的 VSCode 插件,该插件可以帮您快速创建、管理本地的 CFC 函数,具体使用说明见链接,也能帮助您管理和打包第三方依赖。

相似文档
  • BCE SAM是用来定义百度函数计算CFC无服务器应用架构的模型,为本地开发工具bce-sam-cli提供指引。BCE SAM定义了一组对象,这些对象可以包含在模板定义文件中,以便轻松地描述CFC函数。
  • BSAM CLI是一个基于BCE SAM规范的命令行工具,它提供了本地开发环境,帮助您在把函数上传到百度智能云CFC之前,在本地进行函数的开发、分析和执行。
  • “部署程序包”是 CFC 运行您的函数时需要的 zip 压缩包,在创建函数时需要指定部署程序包。您可以在 CFC 的控制台编写代码或者自行创建 zip 程序压缩包。
  • Baidu Serverless VSCode Extension 是百度云 Serverless 产品 CFC 的 VSCode 插件,该插件结合了 CFC 本地命令行工具 BSAM CLI,可以帮您快速创建、管理本地的 CFC 函数,同时借助 Docker 轻松实现函数在本地的执行和 Debug。
  • 函数计算CFC(Cloud Function Compute)提供基于事件触发、全托管的云端计算能力。函数计算通过事件触发器连接到其他服务,当对应服务发出请求时,函数即会响应运行,作出相应处理和反馈。例如:通过BOS触发器将函数连接到百度智能云对象存储服务,设置函数响应BOS的新建对象事件。当用户的对象存储中增加新的文件时,函数即被触发执行,对新上传的文件进行诸如内容检查等操作。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部