【问题标题】:Wildcard-like filtering for S3 put events using Serverless使用无服务器对 S3 put 事件进行类似通配符的过滤
【发布时间】:2020-01-29 13:30:53
【问题描述】:

这是我的 YAML 文件的 sn-p:

functions:
  users:
    handler: incoming.handler
    events:
      - s3:
          bucket: mybucket
          event: s3:ObjectCreated:*
          rules:
            - prefix: incoming/
            - suffix: .zip

这将匹配创建的名为 incoming/*.zip 的对象。

我想添加另一个带有日期时间的键,以便使用 Athena 进行分区。所以 S3 中的完整“路径”将是这样的:

incoming/date=<timestamp>/<filename>.zip

使用上面定义的规则似乎与函数不触发的结果不匹配。

如何使用这种技术进行匹配?

【问题讨论】:

  • 嗯,我正在接受它的那一刻/*不起作用?
  • 如果不是,您是否可以在每个文件中包含一个 meta.json?
  • 或者只观察根文件夹中的新对象(这将是一个文件夹),然后检查新文件夹的内部?

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


【解决方案1】:

如果您无法使用纯无服务器框架功能使其工作,您可以尝试另一种方法:

  1. 设置存储桶,以便在创建对象时触发 SNS 通知。然后,您可以连接无服务器 lambda 以从 SNS 触发。

    在此处查看文档:https://docs.aws.amazon.com/en_pv/AmazonS3/latest/dev/ways-to-add-notification-config-to-bucket.html

  2. 然后使用 SNS 过滤来查找 .zip(或您想使用的任何其他内容)以仅在您感兴趣的文件上触发:https://serverless.com/framework/docs/providers/aws/events/sns/

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-06-13
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    相关资源
    最近更新 更多