Aws lambda 每当新文件以两个不同的s3前缀到达时触发AWS Lambda函数

Aws lambda 每当新文件以两个不同的s3前缀到达时触发AWS Lambda函数,aws-lambda,aws-data-pipeline,Aws Lambda,Aws Data Pipeline,每天我们都会得到一个增量文件,并且我们有多个源可以从中获得增量文件。两者都将把这些文件放在两个不同的s3前缀中。但它们在不同的时间出现。我们希望一次性处理这两个文件,并由此生成一份报告。为此,我将使用AWS Lambda和数据管道。我们将通过Lambda触发AWS数据管线。每当新文件到达时,Lambda就会被触发 当我们只有一个源时,我们也能做到这一点,因此我们为lambda创建了一个s3触发器,每当文件出现时,它都会被触发,开始管线和emr活动,最后生成报告 现在我们也有了第二个源,现在我们希

每天我们都会得到一个增量文件,并且我们有多个源可以从中获得增量文件。两者都将把这些文件放在两个不同的s3前缀中。但它们在不同的时间出现。我们希望一次性处理这两个文件,并由此生成一份报告。为此,我将使用AWS Lambda和数据管道。我们将通过Lambda触发AWS数据管线。每当新文件到达时,Lambda就会被触发

当我们只有一个源时,我们也能做到这一点,因此我们为lambda创建了一个s3触发器,每当文件出现时,它都会被触发,开始管线和emr活动,最后生成报告

现在我们也有了第二个源,现在我们希望在两个文件到达/上载时启动活动

不确定是否可以使用多个依赖项触发aws lambda。我知道这可以通过Step函数来实现,如果我们不支持触发具有多个依赖项的lambda,我可能会采用这种方法


每当新文件以两个不同的s3前缀到达时触发AWS Lambda函数。如果文件仅到达s3位置而未到达其他位置,则不要触发lambda函数。

当您说“prefix”时,是指“bucket”吗?因为前缀是S3中的一个实际概念,即文件名的一部分。所以你现在要问的是,当一个文件到达s3时触发一个lambda,当然,每当一个带有任何前缀的文件写入到你的bucket时,你的lambda都会被触发。如果你真的是指前缀,那么你应该让lambda在两个位置都查看一下,看看这两个文件是否都存在。如果只有一个文件,则不执行任何操作。如果两者都有,这将是lambda第二次被触发的时间,然后进行处理。这实际上也适用于讨论bucket的情况-检查两个bucket,只有在两个bucket中都找到文件时才进行处理。我正在寻找第二个选项,但这里会有一个问题,假设有三个来源,当文件从第一个来源到达时,我们将检查今天的文件是否在所有三个前缀/位置中,因此我们知道我们只有一个位置的文件,所以无需做任何事情。现在文件同时来自第二个和第三个,lambda函数被调用,现在这里有两个调用,两个调用都检查所有三个位置,我们现在有可用的文件,lambda调用实际逻辑两次,所以这将是一个问题,你同意吗?