相关疑难解决方法(0)

如何在Lambda中将对象上传到S3?

似乎无法将对象上传到Lambda中的S3.一切都在当地很好.日志中没有错误可以显示出错的地方......

代码如下:

console.log('Loading function');
var AWS = require('aws-sdk');
var s3 = new AWS.S3();

exports.handler = function(event, context) {
    //console.log(JSON.stringify(event, null, 2));
    var s3 = new AWS.S3();
    var param = {Bucket: 'flow-logs', Key: 'test-lambda-x', Body: 'me me me'};
    console.log("s3");
    s3.upload(param, function(err, data) {
        if (err) console.log(err, err.stack); // an error occurred
        else console.log(data);           // successful response
    });
    console.log('done');
    context.done();
};
Run Code Online (Sandbox Code Playgroud)

运行成功没有错误,但似乎没有调用s3.upload中的回调.桶中没有对象被创建.

通过授予完全访问权限以及在本地测试,已验证的IAM角色权限不是问题.

产量

START RequestId: d4847fdb-160c-11e5-8a8c-b555b123e14d
2015-06-18T22:53:29.750Z    d4847fdb-160c-11e5-8a8c-b555b123e14d    s3
2015-06-18T22:53:30.271Z    d4847fdb-160c-11e5-8a8c-b555b123e14d    done
END RequestId: d4847fdb-160c-11e5-8a8c-b555b123e14d
Run Code Online (Sandbox Code Playgroud)

javascript amazon-s3 amazon-web-services aws-lambda

16
推荐指数
1
解决办法
2万
查看次数

永远不会调用fs.writeFile回调,对于WritableStream.write等也一样

我正在写一个小文本文件(~500B),但奇怪的是,如果我使用fs.writeFile(..)(或WriteableStream的write/end方法)等异步方法编写,我会得到一个空文件.

这有效:

var scanInfo = getScanInfo( core ); // returns several lines delimited by \r\n
fs.writeFileSync( filename, scanInfo, 'ascii' );
Run Code Online (Sandbox Code Playgroud)

这会创建空文件,回调函数永远不会产生任何输出:

var scanInfo = getScanInfo( core );
scanInfo.push('') ;
scanInfo = scanInfo.join(DOS_CRLF);
fs.writeFile( filename, scanInfo, 'ascii', function ( err ) { 
   if(err) { console.error('Failed'); console.error(err) ; }
   else { console.log('OK'); }
});
Run Code Online (Sandbox Code Playgroud)

我正在寻找类似的帖子,但在我发现问题是其他的东西(调用另一个函数返回内容)但我的内容是一个文本字符串(通过调试验证).

类似的帖子:fs.writeFile()不返回回调

平台> Win8.1 x64

NodeJS> x64 0.12.0

PS使用实际编写文件的函数的应用程序使用回调以"plain nodejs"样式编写,但由于它变得更复杂,我使用Q和Q-IO重写了主处理流.所以现在处理开始如下:

(在主模块中)

var qfs = require('q-io/fs') ;
...
qfs.read( configFile )
.then( doSomeConfig )
.then( function( config ) …
Run Code Online (Sandbox Code Playgroud)

callback fs node.js

2
推荐指数
1
解决办法
2277
查看次数