为什么使用Node.JS的lambda函数调用AWS胶水不会console.log?

时间:2019-05-03 17:19:42

标签: node.js amazon-web-services aws-lambda console.log aws-glue

我正在尝试通过使用node.js的lambda函数启动AWS胶水作业。我可以很好地测试lambda函数,但是在脚本运行过程中似乎没有任何反应。我添加了一些console.log行,但是在SDK方法调用期间以启动AWS胶粘作业,没有console.log行记录任何内容(我正在检查lambda代码配置页面和CloudWatch上的输出) 。我在这里想念什么吗?我使用浏览器中的“测试”按钮测试了以下内容。

var AWS = require('aws-sdk'); AWS.config.update({region:'us-east-2'});

var胶=新的AWS.Glue();

exports.handler =异步(事件)=> {

console.log("Hello!")
var params = {
        JobName: 'ETL-store-inventory',
    };

//Invoke job run
glue.startJobRun(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

console.log("Done")

const response = {
    statusCode: 200,
    body: JSON.stringify('Hello from Lambda!'),
};
return response;

};

我从控制台获得以下信息:

响应: {   “ statusCode”:200,   “ body”:“ \”你好,Lambda!“ }

请求ID: “ e205ec08-dce1-4710-b944-f490544b1486”

功能日志: START RequestId:e205ec08-dce1-4710-b944-f490544b1486版本:$ LATEST

2019-05-03T17:17:55.427Z e205ec08-dce1-4710-b944-f490544b1486您好!

2019-05-03T17:17:55.525Z e205ec08-dce1-4710-b944-f490544b1486完成

END RequestId:e205ec08-dce1-4710-b944-f490544b1486

REPORT RequestId:e205ec08-dce1-4710-b944-f490544b1486持续时间:324.11 ms

计费时间:400 ms内存大小:128 MB已使用的最大内存:68 MB

1 个答案:

答案 0 :(得分:0)

在粘合作业的回调返回之前,您的函数正在返回并关闭。您可以在回调内移动return以使函数在回调返回后完成

var AWS = require('aws-sdk'); AWS.config.update({region: 'us-east-2'});

var glue = new AWS.Glue();

exports.handler = async (event) => {

console.log("Hello!")
var params = {
        JobName: 'ETL-store-inventory',
    };

//Invoke job run
return glue.startJobRun(params, function(err, data) {
  if (err) {
    console.log(err, err.stack); // an error occurred
    const response = {
      statusCode: 200,
      body: JSON.stringify('An error occurred!'),
    };
    return response
  } else { 
    console.log(data);           // successful response
    console.log("Done")
    const response = {
      statusCode: 200,
      body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
  }
});


相关问题