【问题标题】:Advise on cross account s3 and lambda integration就跨账户 s3 和 lambda 集成提供建议
【发布时间】: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 读取通知

附加信息:

  1. Lambda 和 S3 都在同一个区域(不同的 AWS 账户)

  2. 假设我们拥有所有必要的权限

  3. 我们每(约 5 秒)在桶中获取一个新对象

  4. 有足够的 Lambda(并发执行)来处理所有调用。

我需要如何确定哪个更好,就以下而言:

  1. 延迟(在 S3 中创建对象的时间 - 执行 Lambda 函数)

  2. 维护

  3. 监控

  4. 扩展(我假设所有服务都由 AWS 管理,这应该不是问题)

【问题讨论】:

  • 你是说你有AWS Lambda函数的跨账户触发器工作吗?那是最难的部分!显然,直接访问 Lambda 将是最低延迟,但如果您预计会出现问题,您可能会喜欢使用死信队列使用 SQS 收集失败的 Lambda 执行。
  • 所有权限都已启用,我正在尝试了解哪种方法最适合通知系统。

标签: amazon-web-services amazon-s3 aws-lambda notifications amazon-sns


【解决方案1】:

我会考虑您正在研究什么样的工作负载以及未来可能的用例可能是什么样的。

  1. 您是否认为 Lambda 调用经常会失败?如果是这样,能够重试处理事件对您来说是否重要?如果是这种情况,配置了 DLQ 的 SQS 或 SNS 将是不错的选择。
  2. 您是否希望将来根据这些事件连接额外的 Lambda 或其他下游操作?如果是这样,您可能希望使用 SNS 来添加多个订阅。
  3. 您打算如何将更新部署到 Lambda?如果您偶尔希望能够使其脱机以进行更改,则可以使用 DLQ 来接收无法送达的通知。

由于您位于同一地区,因此延迟不太可能成为问题。

也可以使用 SNS 或 SQS 轻松设置监控。您可以根据 SNS 交付失败、DLQ 中的消息数量等设置 CloudWatch 警报。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 2021-03-14
    • 1970-01-01
    • 2020-07-31
    • 2020-03-29
    • 2012-01-13
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多