当在S3

时间:2017-05-08 10:04:41

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

我试图在AWS中构建一个Lambda,当在存储桶中创建一个对象时将调用该Lambda' test'带前缀' a / b / 2017/05/08'今天的数据。但明天,它将被写入' a / b / 2017/05/09'。

我尝试创建前缀设置为' a / b'的Lambda,但这样,只有当我在' a / b / tmp.txt'中创建文件时才会这样做。将触发lambda。如果我在' a / b / 2017/05/09'中创建,则不再触发lambda。

有人可以帮帮我吗?如何让Lambda监听在所有子目录中创建文件?谢谢!

1 个答案:

答案 0 :(得分:0)

你描述的不是真的。

使用对象键前缀配置S3触发器 - 是递归的

请参阅以下触发器定义: enter image description here

这是由此事件触发的简单lambda:

exports.handler = (event, context, callback) => {
    let lastRecordObjectKey;
    event.Records.forEach(record => {
        lastRecordObjectKey = record.s3.object.key;
        console.log(lastRecordObjectKey);
    });

    callback(null, lastRecordObjectKey);
};

这是CloudWatch日志,显示每个递归路径 - lambda被触发。 enter image description here