如何触发Lambda只有一次多部分上传S3触发器?

时间:2017-04-19 16:35:10

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

我有一个AWS Lambda函数:

  1. S3 ObjectCreated触发器
  2. 作出反应
  3. ssh到ec2实例和
  4. 运行python脚本
  5. 然后,此python脚本将运行EMR以处理刚刚创建的所有这些S3部分文件。 (是的,必须联合处理这些文件。)

    但是,部分文件(file_part_0000file_part_0001file_part_0002等)会被创建为分段上传。

    Lambda Event: {..., "eventName": "ObjectCreated:CompleteMultipartUpload", ...}
    

    我的理解是,这个触发器会强制Lambda ssh并运行python脚本的次数和部分文件一样多。我只希望Lambda ssh并运行脚本一次

    是否有任何方法可以为每个"系列" 触发一次分段上传?

1 个答案:

答案 0 :(得分:0)

正如Configuring Amazon S3 Event Notifications

中所述
  

您将不会收到失败操作的事件通知。

并且有一个原因是事件是s3:ObjectCreated:CompleteMultipartUpload,只有当您的多部分完全上传时才会触发事件。

另一方面,也许你应该让S3事件触发器向SQS发送信息。因此,您可以使您的python程序可以观看SQS队列并处理该文件。使用SQS,您无需在lambda中进行无密码设置或存储私钥以ssh服务器。