我创建了一个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();
}
});
};