Подобная подстановочным знакам фильтрация событий S3 с использованием Serverless - PullRequest
0 голосов
/ 30 сентября 2019

Вот фрагмент моего файла YAML:

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

Это будет соответствовать для созданных объектов с именем incoming/*.zip.

Я хочу добавить еще один ключ с датой и временем для легкого разбиения с помощьюАфина. Таким образом, полный «путь» в S3 будет примерно таким:

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

Использование определенных выше правил, похоже, не соответствует результату, что функция не срабатывает.

Какмне соответствовать, используя эту технику?

1 Ответ

0 голосов
/ 01 октября 2019

Если вы не можете заставить это работать, используя чистую функциональность Serverless Framework, вы можете попробовать альтернативный подход:

  1. Настройте корзину так, чтобы уведомление SNS запускалось при создании объекта. После этого вы можете подключить свою безсерверную лямбду для запуска из 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/

удачи!

...