在 S3 中创建对象时的 AWS Lambda 函数触发器不起作用

Mik*_*kov 8 amazon-s3 aws-lambda

我正在做这样的上传:

curl -v -X PUT -T“test.xml”-H“主机:my-bucket-upload.s3-eu-central-1.amazonaws.com”-H“内容类型:application/xml” https:// /my-bucket-upload.s3-eu-central-1.amazonaws.com/test.xml

文件已上传,我可以在我的 S3 存储桶中看到它。

诀窍是,当我尝试创建一个在创建时触发的 lambda 函数时,它永远不会被调用。如果我使用 S3 Web 界面上传文件,则效果很好。我究竟做错了什么?有没有关于如何做到这一点的明确食谱?

not*_*est 3

Amazon S3 API(例如 PUT、POST 和 COPY)可以创建对象。使用这些事件类型,您可以在使用特定 API 创建对象时启用通知,也可以使用 s3:ObjectCreated:* 事件类型来请求通知,无论用于创建对象的 API 是什么。

  • 检查存储桶上的通知事件设置
  • 转到 AWS 管理控制台上的存储桶
  • 单击存储桶上的属性选项卡
  • 单击事件以检查通知事件设置

情况1:

  • s3:ObjectCreated:* - 无论 PUT、POST 或 COPY,都应调用 Lambda

其他情况:-

  • 如果事件是针对特定 HTTP 方法设置的,请在 CURL 命令中使用该方法在 S3 存储桶上创建对象。这样它应该会触发 Lambda 函数