0
コンテキスト: AWSラムダ関数を使用してAlexaスキルを作成しています。ラムダ関数コードそのもの。私は、S3ファイルの内容にアクセスし、それを関数の変数に代入しようとしていたので、残りのコードで使用できるようになりましたが、正しく動作していないようです。関連するコードについては以下を、コンソールに印刷するときは私が見ることができるものを参照してください。AWS Lambda関数のS3からJSONファイルを使用する(Alexa用)
ラムダ関数:
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"}]
なぜこのコードでは、まず、 "第三のステップ" を印刷していますか?
まだ印刷されているはずです。 –
何が印刷されるべきですか?コールバックの戻り値はどこにもなく、getObjectは[Object object]であるAWS.Requestを返します。しかし、実際には何もコンテンツで何もしていません。すべてのコンソールログの呼び出しが表示されます。 –