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

Create AWS lambda event source to trigger file create by aws cli cp command

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

我将事件源配置如下:

Object Created事件类型的四个选项我都试过了,就是不行。

我使用 aws cli 如下:

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

有什么地方我没配置好吗?

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

使用 awscli 将文件同步到 S3 不会导致 s3:ObjectCreated:Copy 事件(我认为这与 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 可能使用也可能不使用分段上传,因此您需要处理这两种情况。