Lambda函数由ObjectRemoved事件连续触发

时间:2018-07-04 07:34:54

标签: amazon-web-services amazon-s3 triggers aws-lambda

我创建了一个Lambda函数来删除给定的缩略图,并在ObjectRemoved事件上设置了一个触发器,以便在从给定的aws-S3存储桶中删除原始文件时自动删除缩略图。

但是,通过分析每月的账单,我意识到由于某种原因,Lambda被调用了亿万次,并且不会停止被触发。我必须在Lambda上禁用触发器才能禁用它。

问题是我尚未在该存储桶上创建或删除任何文件,所以我想知道lambda函数是否可能连续不断地被触发。

感谢您的帮助。

谢谢。

编辑:

我的AWS Lambda代码

var aws = require('aws-sdk');
var s3 = new aws.S3();
exports.handler = function (event, context) {
    console.log('Received event:', JSON.stringify(event, null, 2));

    // Get the object from the event and show its content type
    const bucket = event.Records[0].s3.bucket.name;
    const key = event.Records[0].s3.object.key;
    const path = key.split('/');
    const folder = path[0];
    const fileName = path[1];
    const deleteKey = folder + '/thumbnails/' + fileName;

    s3.deleteObject({ Bucket: bucket, Key: deleteKey }, function (err, data) {
        if (err) {
            console.log('Error deleting object ' + deleteKey + ' from bucket ' + bucket + '. Make sure they exist and your bucket is in the same region as this function.');
            context.fail('Error getting file: ' + err)
        } else {
            context.succeed();
        }
    });
};

0 个答案:

没有答案