Serverless(aws节点):从其他文件调用函数将返回内部服务器错误

时间:2019-06-21 07:29:47

标签: javascript node.js serverless-framework aws-serverless

所以我的serverless.yml上具有以下功能

functions:
getEstimate:
handler: handler.getEstimate
events:
  - http:
      path: /get-quotation
      method: get

getQuotation: 
handler: lalamove/index.getQuotation
events:
  - http:
      path: /lalamove-get-quote
      method: get

,我在handler.js中有这段代码,该代码从lalamove / index.getQuotation调用getQuotation()函数。

'use strict';
 var lalamove = require("./lalamove/index.js");


 module.exports.getEstimate = (event, context, callback) => {
   lalamove.getQuotation();
 };

在无服务器部署之后,我运行了getEstimate端点,我得到了{"message": "Internal server error"} 但是,如果我尝试运行getQuotation,则会得到{"message":"hermbs"},当我运行getEstimate时也应将其打印出来。

这是我的index.js

'use strict';

module.exports.getQuotation = (data, context, callback) => {
    const response = {
        statusCode: 200,
        body: JSON.stringify({
            message: "hermbs",
        }),
    };
    callback(null, response);
};
我在这里想念什么吗?

2 个答案:

答案 0 :(得分:0)

我认为调用这样的另一个lambda函数不是最佳实践。 我建议在第三个“ shared / util”模块中提取所需的代码,并让两个模块都从第三个模块中导入所需的功能

答案 1 :(得分:0)

我已经弄清楚了这个:

module.exports.getEstimate = (event, context, callback) => {
  var data = JSON.parse(event.body);

   lalamove.getQuotation(data ,context, function(err, data){
     callback(null,data)
   });
};