将文件上传到s3时未触发s3 createObject事件

时间:2018-11-26 12:57:28

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

我正在使用aws serverless创建一个函数,每当一个新文件上传到s3存储桶时,该函数就会被调用。我这样订阅。 但是,为了进行测试,我从亚马逊控制台手动上传了文件,我希望该功能可以执行,但是检查CloudWatch日志后,似乎什么都没有执行。

如果我手动运行lambda函数,一切正常,并且我在Cloudwatch中看到了日志,但是该事件触发了失败的事件。

仅供参考:创建存储桶的功能要比在单独的云形成堆栈中的功能先创建。因此,存储桶和功能不能同时创建。

有任何提示吗?

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

1 个答案:

答案 0 :(得分:2)

我对这种成功部署感到惊讶,因为(除非最近得到解决)CloudFormation有一个局限性,即它只能根据自己的资源运行,这意味着Serverless无法将触发器附加到该模板未创建的存储桶上

幸运的是,经常遇到这种限制,以至于人们编写了无服务器框架插件来解决该问题。我建议您使用此插件在现有存储桶上触发lambda:

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