【发布时间】:2021-10-03 13:47:01
【问题描述】:
有两个帐户:
Account-A(我们的团队不拥有此服务)-> s3 Bucket (exampleBucket) 位于。
Account-B(我们的团队拥有)-> Lambda 函数 (myLambda)
每当在 s3 存储桶 (exampleBucket) 中创建新对象时,我们都需要执行 Lambda 函数 (myLambda)。
我找到了至少 2 种方法来做到这一点:
S3(事件通知)-> Lambda
S3 (Event Notification) -> SNS Topic -> Lambda 从 SNS 读取通知
S3(事件通知) -> SQS 主题 -> Lambda 从 SQS 读取通知
附加信息:
-
Lambda 和 S3 都在同一个区域(不同的 AWS 账户)
-
假设我们拥有所有必要的权限
-
我们每(约 5 秒)在桶中获取一个新对象
-
有足够的 Lambda(并发执行)来处理所有调用。
我需要如何确定哪个更好,就以下而言:
-
延迟(在 S3 中创建对象的时间 - 执行 Lambda 函数)
-
维护
-
监控
-
扩展(我假设所有服务都由 AWS 管理,这应该不是问题)
【问题讨论】:
-
你是说你有AWS Lambda函数的跨账户触发器工作吗?那是最难的部分!显然,直接访问 Lambda 将是最低延迟,但如果您预计会出现问题,您可能会喜欢使用死信队列使用 SQS 收集失败的 Lambda 执行。
-
所有权限都已启用,我正在尝试了解哪种方法最适合通知系统。
标签: amazon-web-services amazon-s3 aws-lambda notifications amazon-sns