AWS S3 Put不被Lambda接收

时间:2017-09-14 01:35:09

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

我有一个lambda作业,它检测到一个s3放到Bucket A并将其移动到Bucket B.我有另一个lambda作业,它检测到放入桶B的S3并对该文件执行一些操作。

由于某种原因,铲斗A lambda作业自动放入铲斗B不会被触发。如果我手动上传到存储桶B,则会触发lambda作业。

这是完全相同的代码,大概是S3的相同动作,我不知道为什么会这样。

你们有什么投入吗?谢谢!

1 个答案:

答案 0 :(得分:2)

  

这是完全相同的代码,并且可能与S3的行为相同

不。

有5种不同的事件,分别代表4种创建对象的方式和通配符。

s3:ObjectCreated:Put
s3:ObjectCreated:Post
s3:ObjectCreated:Copy
s3:ObjectCreated:CompleteMultipartUpload

s3:ObjectCreated:*

你几乎总是想要最后一个,除非你故意想要限制哪些动作引发事件......但听起来你把事件绑定到第一个。将一个对象从一个桶“移动”到另一个桶我们通常使用复制操作完成...但并非总是如此。除非您有特殊原因,否则请使用通配符。

http://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-event-types-and-destinations