S3存储桶通知或CloudWatch事件规则以在对象级别更改时调用Lambda?

时间:2019-05-15 13:15:48

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

在S3存储桶上创建对象后,我需要启动Lambda函数。我找到了两种解决方案。

  1. 使用AWS::S3::Bucket NotificationConfiguration
  2. 使用CloudWatch AWS::Events::Rule

它们似乎都做着完全相同的事情,即跟踪特定的更改并在发生Lambda函数时启动它。我找不到应该使用的任何信息。我正在使用Cloud Formation Template来配置Lambda,S3存储桶和触发器。

我应该使用哪个来调用对象级别更改上的Lambda,为什么?

1 个答案:

答案 0 :(得分:2)

使用第一个,因为

  • 推模型比拉模型要好得多。推送意味着您在获取数据时就发送数据,而不是轮询一定间隔的数据。这是一个遍及我们的推送通知时代。您不会每隔5分钟去facebook检查某人是否喜欢您的图片,或者某人是否已回复您的评论等。
  • 从成本和努力方面来讲,S3事件通知也能赢得比赛。

  • 如果您没有S3通知,Cloudwatch是最好的选择,但是既然有,那是最好的。另外,如果您在服务本身中具有功能,那么为什么要选择替代解决方案,例如Cloudwatch规则。