为什么lambda函数使用Node.JS调用AWS glue而不使用console.log?
我正在尝试使用lambda函数和node.js启动AWS胶水作业。我可以很好地测试lambda函数,但在脚本运行完之后,似乎什么也没有发生。我添加了一些console.log行,但是在启动AWS粘合作业的SDK方法调用期间,console.log行中没有记录任何内容,我正在lambda代码配置页面和CloudWatch上检查输出。我是不是遗漏了什么?我使用浏览器中的测试按钮测试了以下内容 var AWS=需要“AWS-sdk”; AWS.config.update{region:'us-east-2'} var glue=新AWS.glue exports.handler=异步事件=>{为什么lambda函数使用Node.JS调用AWS glue而不使用console.log?,node.js,amazon-web-services,aws-lambda,console.log,aws-glue,Node.js,Amazon Web Services,Aws Lambda,Console.log,Aws Glue,我正在尝试使用lambda函数和node.js启动AWS胶水作业。我可以很好地测试lambda函数,但在脚本运行完之后,似乎什么也没有发生。我添加了一些console.log行,但是在启动AWS粘合作业的SDK方法调用期间,console.log行中没有记录任何内容,我正在lambda代码配置页面和CloudWatch上检查输出。我是不是遗漏了什么?我使用浏览器中的测试按钮测试了以下内容 var AWS=需要“AWS-sdk”; AWS.config.update{region:'us-east
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;
})
我从控制台获得以下信息:
答复:
{
状态代码:200,
身体:\你好,来自Lambda\
}
请求ID:
e205ec08-dce1-4710-b944-f490544b1486
功能日志:
启动请求ID:e205ec08-dce1-4710-b944-f490544b1486版本:$最新
2019-05-03T17:17:55.427Z e205ec08-dce1-4710-b944-f490544b1486你好
2019-05-03T17:17:55.525Z e205ec08-dce1-4710-b944-f490544b1486完成
结束请求ID:e205ec08-dce1-4710-b944-f490544b1486
报告请求ID:e205ec08-dce1-4710-b944-f490544b1486持续时间:324.11毫秒
计费持续时间:400毫秒内存大小:128 MB最大已用内存:68 MB您的函数正在返回并在胶水作业的回调返回之前关闭。您可以在回调中移动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;
}
});
在从粘合作业返回回调之前,函数将返回并关闭。您可以将粘合作业转换为承诺并等待其完成,或者将返回调用移到回调中。