【问题标题】:Code in a lambda function not called at all根本不调用 lambda 函数中的代码
【发布时间】:2016-01-07 10:59:02
【问题描述】:

我既不是 Node.js 也不是 AWS Lambda 专家,所以我可能会做错事。 我编写了下面的代码,当使用 AWS CLI 从命令行执行时运行良好,但根本不会在 lambda 函数中调用。

你能告诉我要寻找什么或调试它以了解原因吗? 谢谢。


var aws = require('aws-sdk');

console.log('Loading function');

exports.handler = function(event, context) {
console.log('Received event:', JSON.stringify(event, null, 2));
console.log('value1 =', event.key1);
var params = {
Bucket: 'nicobucket1',
Body: 'hellolll',
Key: 'mykey',
};
var s3 = new aws.S3();
console.log('Created S3 object, invoking upload...' + JSON.stringify(s3));
s3.upload(params, function(err, data){
console.log('...in function upload...');
if(err){ 
console.log(err);
context.fail('Could not create object in bucket...');
}
else console.log ('Uploaded data, check the console...');
});

context.succeed('Created object in S3 bucket!'); 
};

我在日志中看到除了 s3.upload 函数中的所有 console.log 消息。当然,不会创建对象。 从命令行一切都很好。


【问题讨论】:

    标签: lambda


    【解决方案1】:

    您的context.succeed(); 很可能在s3.upload() 有机会完成之前执行。尝试将您的 context.succeed()' 行移动到 s3.upload 函数中。我还注意到“mykey”之后的参数中有一个额外的逗号。我已经尝试了您的代码的以下修改版本,并且成功了。

    var aws = require('aws-sdk');
    
    console.log('Loading function');
    
    exports.handler = function(event, context) {
        console.log('Received event:', JSON.stringify(event, null, 2));
        console.log('value1 =', event.key1);
        var params = {
            Bucket: 'nicobucket1-unique',
            Body: 'hellolll',
            Key: 'mykey'
            };
        
        var s3 = new aws.S3();
        
        console.log('Created S3 object, invoking upload...' + JSON.stringify(s3));
        
        s3.upload(params, function(err, data){
            console.log('...in function upload...');
            
            if(err){ 
                console.log(err);
                context.fail('Could not create object in bucket...');
            }
            else 
            {
                console.log ('Uploaded data, check the console...');
                context.succeed('Created object in S3 bucket!');
            }
             
        });
        
    };

    希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-04-16
      • 2016-02-29
      • 1970-01-01
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      • 2018-10-06
      相关资源
      最近更新 更多