【问题标题】:AWS lambda function listen to prefix recursively when Object is created in S3在 S3 中创建 Object 时,AWS lambda 函数递归侦听前缀
【发布时间】:2017-10-06 06:57:46
【问题描述】:

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

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

谁能帮帮我?如何让 Lambda 监听所有子目录中的创建文件?谢谢!

【问题讨论】:

  • 你的问题不是很清楚,可以重新表述一下吗?
  • "但是这样一来,只有当我在 'a/b/tmp.txt' 中创建文件时,才会触发 lambda。" 应该不是这样,但您真正想要的前缀可能是 a/b/ 而不是 a/b

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


【解决方案1】:

你描述的不是真的。

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

请参阅以下触发器定义:

这是由该事件触发的简单 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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-30
    • 1970-01-01
    • 2023-01-20
    • 1970-01-01
    • 2021-05-09
    • 2011-12-04
    • 2019-01-03
    • 1970-01-01
    相关资源
    最近更新 更多