【发布时间】:2018-06-10 07:32:09
【问题描述】:
上下文:我正在使用 AWS Lambda 函数创建一个 Alexa 技能,并将一个大型 JSON 文件放在 S3 中,而不是尝试将它放在 Lambda 函数代码本身中。我一直在尝试访问 S3 文件的内容并将其分配给函数中的变量,以便我可以在其余代码中使用它,但它似乎无法正常工作。请参阅下面的相关代码,以及我打印到控制台时可以看到的内容。
Lambda 函数:
var handlers = {
'LaunchRequest': function() {
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
data = s3.getObject(myParams, function(err, data) {
if(err) { console.log(err, err.stack);}
else {
console.log('First step');
var fileText = data.Body.toString();
console.log('Second Step' + fileText);
return fileText;
}
});
console.log('Third Step' + data);
}
}
控制台输出:
Function Logs:
START Version: $LATEST
2017-12-29T23:59:38.585Z Warning: Application ID is not set
2017-12-29T23:59:40.024Z Third Step[object Object]
2017-12-29T23:59:40.159Z First step
2017-12-29T23:59:40.183Z Second Step[{category1: "test1", category2: "test2", category3: "test3"}]
为什么这段代码首先打印“第三步”?
【问题讨论】:
标签: json amazon-web-services amazon-s3 aws-lambda alexa