s3 событие createObject не вызывается при загрузке файла на s3 - PullRequest
0 голосов
/ 26 ноября 2018

Я использую aws без сервера, чтобы создать функцию, которая вызывается всякий раз, когда новый файл загружается в корзину s3.Я подписываюсь так.Однако, чтобы проверить это, я загружаю файл вручную с консоли amazon и ожидаю, что функция будет выполнена, но, проверяя журналы CloudWatch, похоже, ничего не будет выполнено.

Если я запускаю функцию лямбда-выражения вручную всеработает нормально, и я вижу журналы в Cloudwatch, однако это событие вызывает то, что не удается.

К вашему сведению: сегмент создается раньше, чем функция в отдельном стеке формирования облака.Таким образом, ведро и функция не создаются одновременно.

Есть подсказки?

register:
    handler: lib/register.handler
    memory: 256
    events:
      - s3:
        bucket: ${self:custom.myBucketArn}
        event: s3:ObjectCreated:*

1 Ответ

0 голосов
/ 26 ноября 2018

Я немного удивлен, что это удается развернуть, поскольку (если он не был недавно решен), CloudFormation имеет ограничение, заключающееся в том, что он может действовать только на свои собственные ресурсы, что означает, что Serverless не может прикреплять триггеры к корзинам, не созданным этим шаблоном.

К счастью, это ограничение встречается достаточно часто, так что люди создали плагины Serverless Framework для его обхода.Я рекомендую использовать этот плагин для запуска лямбды в существующем сегменте:

https://github.com/matt-filion/serverless-external-s3-event

...