智能客服
你问我答,随时在线为你解决问题
入口方法定义如下:
- module.exports.myHandler = function(event, context, callback, logger)
函数必须通过显式调用callback(object)将事件处理结果返回给AGC,结果可以是任意对象,但必须与JSON.stringify兼容,AGC会将结果转换成JSON字符串后,返回给调用方。callback执行完成,函数即执行结束。
完整的Node.js 20.x云函数示例代码请参考函数示例。
- let env1 = context.env.env1;
若环境变量未配置,则会返回环境变量为undefined。

您可以在函数代码中捕获异常,封装成error对象返回给调用方。对于函数执行期间被平台捕获的异常,平台同样以error对象形式返回给调用方。error对象定义如下。
- error:
- {
- "code": xxxxxx,
- "message": "xxxxxxxx"
- }
其中code为错误码,message为错误码的描述信息。
示例代码如下:
- try {
- logger.info(JSON.stringify(event));
- let result = { "message": "success" };
- callback(result);
- } catch (err) {
- let error = {
- code: 400,
- message: err.message
- }
- callback(error);
- }
示例函数如下:
示例代码中入口方法myHandler()的返回值类型仅供您参考,您可以根据实际需要定义。
- /**
- * Describe the basic method of Cloud Functions
- */
- let myHandler = function(event, context, callback, logger) {
- // example of display environment variables
- let env1 = context.env.env1;
-
- // example of display logs
- logger.info("Test info log");
- logger.warn("Test warn log");
- logger.debug("Test debug log");
- logger.error("Test error log");
-
- logger.info("--------Start-------");
- try {
- let startTime = new Date().getTime();
- let endTime = startTime;
- let interval = 0;
- startTime = process.uptime() * 1000;
-
- // print input parameters and environment variables
- logger.info("request: " + JSON.stringify(event.request));
- logger.info("env1: " + env1);
-
- endTime = process.uptime() * 1000;
- interval = endTime - startTime;
- logger.info("intervalTime: " + interval);
- logger.info("--------Finished-------");
-
- let res = new context.HTTPResponse(context.env, {
- "res-type": "context.env",
- "faas-content-type": "json",
- }, "application/json", "200");
- res.body = {"intervalTime": interval};
- callback(res);
- } catch (error) {
- logger.error("--------Error-------");
- logger.error("error: " + error);
- callback(error);
- }
- };
-
- module.exports.myHandler = myHandler;
函数部署包示例:nodejs_demo.zip
您上传的Node.js函数部署包须使用如下结构,处理程序所在代码文件必须在zip根目录下,依赖项放到node_modules目录下,可通过npm工具的相关命令,安装与管理依赖。
- my-function.zip
- |---- index.js
- |---- node_modules
- |----async
- |----async-listener
智能客服
你问我答,随时在线为你解决问题
合作咨询
我们的专家服务团队将竭诚为您提供专业的合作咨询服务
解决方案
精准高效的一站式服务支持,助力开发者商业成功