【问题标题】:SQS and AWS Lambda IntegrationSQS 和 AWS Lambda 集成
【发布时间】:2020-06-14 12:25:20
【问题描述】:

我正在开发一个审计跟踪系统,它将作为组织内发生的所有关键事件的中心位置。我计划使用 Amazon SQS 作为临时队列来保存消息,然后触发 AWS lambda 函数将消息写入 AWS S3 存储。我想在 tenantId 级别(一些可识别的 id)隔离数据并将消息作为批次保存在 S3 中,这将减少从 lambda 到 S3 的调用次数。此外,我想每小时触发一次 lambda。但是,我这里有 2 个问题,一个 SQS 提供的最大批量大小是 10,而且 lambda 触发器也会定期轮询 SQS 服务,这会增加对我的 S3 的调用次数。我想在调用 S3 批处理 api 之前创建一个手动批处理 1000 条消息(比如说)。我不太确定如何构建我的系统,以便满足上述要求。提供的帮助或想法非常可观!

简化架构:

谢谢!

【问题讨论】:

    标签: amazon-s3 aws-lambda amazon-sqs


    【解决方案1】:

    我建议您改用Amazon Kinesis Data Firehose。它基本上做了你想做的事:

    • 接受传入消息
    • 缓冲一段时间
    • 将输出写入 S3 或 Elasticsearch

    这都是作为托管服务完成的,也可以与 AWS Lambda 集成以提供自定义处理(例如过滤掉某些记录)。

    但是,您可能需要做一些特殊的事情来隔离tenantId 的数据。见:Can I customize partitioning in Kinesis Firehose before delivering to S3?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-14
      • 2019-07-01
      • 2020-07-28
      • 2021-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多