当前位置: 首页 > 知识库问答 >
问题:

如何设置lambda函数以同时使用两个触发器

东方宜
2023-03-14

我需要一个λ刚刚开始时,一些文件被上传到两个不同的S3前缀。

例子:

我有文件A和文件B,每个文件有两个不同的前缀。

我需要对文件A和文件b进行一些聚合。

为此,我将使用一个Lambda,当上传文件时,它会在SNS上显示一条消息。

我希望在lambda收到这两个事件通知时启动此lambda的配置

因此,当S3上有这两个文件可供处理时,我的lambda就可以启动了。

设置此触发器以协同工作的最佳方法是什么?

共有1个答案

顾均
2023-03-14

太长,读不下去了不要在“发布lambda”中手动引发“文件创建”通知,而是让S3事件通知在创建目标文件时自动调用“处理lambda”。当两个文件都存在时,lambda运行到完成。

docs:亚马逊S3可以在创建或删除对象时向Lambda函数发送一个事件。

(1)创建S3事件通知:将两个事件通知添加到存储桶中。一个在S3上创建FileA时调用处理lambda。另一个在创建FileB时调用它。您可以设置过滤器,以便仅在某些S3操作和文件模式上通知您的lambda。

(2) 处理lambda检查其他文件是否存在。传递给lambda的S3事件包含有关触发事件(例如,ObjectCreated)和对象(例如,密钥名称、版本、bucket等)的信息。使用AWS SDK检查S3上是否存在其他文件。

如果两个文件都存在,则调用胶水例程,否则退出。

50%的时间处理lambda会提前退出(因为只有1个文件存在)。其他时候,lambda将一直运行到胶水例程。

(注意:只有当您可以从另一个文件名中派生出一个文件时,这才有效,这在OP或注释中是不清楚的。)

 类似资料:
  • 我正在使用AWS Lambda函数(用python编写)在对象上传到预设S3 bucket时发送电子邮件。该对象通过AWS PHP SDK上传到S3 bucket中,并使用多部分上传。每当我测试我的代码(在Lambda代码编辑器页面中)时,它似乎工作得很好,我只收到一封电子邮件。 但是当对象通过PHPSDK上传时,Lambda函数运行两次并发送两封电子邮件,两者都具有不同的消息ID。我尝试了不同的

  • 我正在尝试使用DynamoDB流和AWS Lambda创建DynamoDB触发器。我做了很多研究,但在Java 8中找不到任何读取和处理DynamoDB流事件的方法。我对这两种技术都是新手,所以不知道如何使用它。 本质上,我想做的是每当在表A中创建记录时,都在表B中创建一条记录。 你们谁能给我指出一个在Java中处理这个用例的代码或帖子吗? 谢谢:)

  • 我部署了一个用Python2编写的服务。7使用AWS Lambda,它是关于从一些页面提取数据并将结果发送到web应用程序。该服务由AWS CloudWatch事件触发(固定速率为5分钟)。 但是,我发现有时服务会一次触发两次。我得到这个是因为有两个日志流打印了相同的数据和结果,但具有不同的Request estID。并且数据库有重复的数据,这表明两者都成功工作。看起来服务几乎无缘无故地同时触发了

  • 我试图触发一个lambda函数,在多个表上使用无服务器的dynamodb流。yml配置。可以在aws serverless.yml的触发器上配置通用arn吗。 有dynamodb表req\u tnt1、req\u tnt2、req\u tnt2…等等。每当req\u tnt*表更新时,我都会触发lambda并将信息存储在elasticsearch中以进行自由文本搜索。我能够处理触发lambda和更

  • 我在网上到处找解决办法。根据本教程,我一直在尝试设置一个AWS Lambda函数,以便在每次将文件上传到特定的S3 bucket时向SNS发送一条消息。此时,我已经设置了函数,并且可以成功地调用它。但是,当我尝试将函数连接到S3时,我得到一个错误,说明。根据本文,我应该能够添加一个允许S3调用Lambda函数的权限,如下所示: 我这样做了,并注意到与Lambda函数关联的策略更新了,并且看起来是正

  • 我正在尝试使用AWS Lambda/S3构建一个服务,该服务将用户电子邮件作为输入,并输出带有PDF附件的响应电子邮件。我发送给用户的最终PDF是通过将我之前根据输入电子邮件生成的两种PDF合并在一起生成的。架构的完整图见下图。 建筑示意图 我遇到的问题与合并PDF Lambda函数有关,该函数接收类型1和类型2 PDF并生成类型3 PDF。一旦一组完整的类型1和2 PDF准备就绪并在S3中等待,