无服务器框架-S3上传lambda触发器

时间:2020-04-05 20:15:59

标签: amazon-s3 server aws-lambda serverless-framework

我想根据文件上传文件夹在同一存储桶上触发不同的lambda。基本上,当用户将文件上传到“ user / some_id / bills”时,我要触发lambda 1;当用户将文件上传到“ user / some_id / docs”时,我想触发lambda 2;

我尝试了以下配置,但没有用...

insertUploadBill:
handler: resources/insertUploadBill.main
events:
  - s3:
      bucket: ${self:custom.settings.BUCKET}
      event: s3:ObjectCreated:*
      rules:
        - prefix: user/*/bills/       

insertUploadDocs:
handler: resources/insertUploadDoc.main
events:
  - s3:
      bucket: ${self:custom.settings.BUCKET}
      event: s3:ObjectCreated:*
      rules:
        - prefix: user/*/docs/

1 个答案:

答案 0 :(得分:0)

如果您查看文档 https://docs.aws.amazon.com/AmazonS3/latest/dev/NotificationHowTo.html#notification-how-to-filtering

不能使用规则(前缀/后缀)中的通配符。

  1. 因此您可以更改S3对象键以匹配这样的内容 user/images/[user-id]
  2. 或者您可以创建一个单独的lambda,以在所有s3:ObjectCreated:*事件上调用,然后使用该lambda来匹配键并调用您当前的lambda。 resources/insertUploadBill.mainresources/insertUploadDoc.main