创建AWS lambda事件源以通过aws cli cp命令触发文件创建

时间:2016-06-25 13:28:45

标签: amazon-s3 aws-lambda

我想创建一个AWS lambda事件源来捕获通过aws cli cp命令上传文件的操作,但是当我上传文件时它无法触发。这就是我所做的:

我将事件源配置如下
enter image description here

我已经尝试了Object Created事件类型的所有四个选项,它只是没有用。

我使用aws cli如下

aws s3 cp sample.html s3://ml.hengwei.me/data/

有没有我错过配置的地方?

1 个答案:

答案 0 :(得分:2)

您正在从错误的事件类型触发Lambda。

使用awscli到cp文件到S3不会导致s3:ObjectCreated:复制事件(我认为它与S3复制操作有关,将对象从一个存储桶复制到另一个存储桶)。在你的情况下,对象被上传到S3,我认为它导致s3:ObjectCreated:Put或s3:ObjectCreated:CompleteMultipartUpload。

事件包括:

  • s3:ObjectCreated:Put - 一个对象是由HTTP PUT创建的 操作
  • s3:ObjectCreated:Post - HTTP POST创建了一个对象 操作
  • s3:ObjectCreated:Copy - 一个对象创建了一个S3副本 操作
  • s3:ObjectCreated:CompleteMultipartUpload - 一个对象是 完成S3多部分上传后创建。
  • s3:ObjectCreated:* - 一个对象是由其中一个事件类型创建的 上面列出的或者通过添加的类似对象创建事件 未来。

完整的活动列表是here。请注意,awscli可能会也可能不会使用多部分上传,因此您需要处理这两种情况。