【问题标题】:What is the best way to use AWS Scheduler considering cost and performance考虑到成本和性能,使用 AWS Scheduler 的最佳方式是什么
【发布时间】:2020-11-18 14:56:24
【问题描述】:

我正在开发一个将文件上传到 AWS S3 存储桶的 JAVA 项目。现在我需要每天早上 8 点在 S3 中处理这些文件(验证并将数据发送到数据库)。我计划为此使用 AWS 调度程序。但我很困惑我必须使用什么调度程序以及如何使用。我浏览了文档,发现了关于 AWS BatchAWS cloud watch scheduler through Lambda。但我不知道在这种情况下使用 AWS 调度程序的最佳方式是什么。不确定天气 AWS Batch 是否适用于此。其实我也需要考虑成本。 如果你能建议我解决这个问题的最佳方法,我很高兴。也欢迎替代方法。

P.S:文件处理需要 15 分钟以上。而且我还需要配置其他几个调度器。

【问题讨论】:

  • 调度器是什么意思?您正在谈论调度程序的一些批处理作业。
  • 我需要在 AWS 中安排多个 API 调用。例如,我需要每天早上 8 点调用 customerDataBackup Api。
  • 使用 eventbridge (cloudwatch scheduler) 调用 lambda 函数并从 lambda 调用 API。

标签: java amazon-web-services aws-lambda aws-batch


【解决方案1】:

我在这里提出的解决方案是

  1. 使用 Clouwatch 规则在上午 8 点触发 lambda。 (例如:SchedulerLambda)
  2. SchedulerLambda 不会处理任何文件,它会列出“已定义”位置中的文件。
  3. 对于每个文件,SchedulerLambda 都会向主题发送一条 SNS 消息
  4. SNS 有一个 SQS 订阅
  5. SQS 有一个 Lambda 触发器(例如:FileProcessorLambda)
  6. FileProcessorLambda 将按批次处理(最多 10 个)。您可以根据您的用例调整批次数量。
  7. 在 FileProcessorLambda 完成文件后,它也会跟踪 DynamoDB 的状态。它随时重试和恢复的原因。

注意:这里的设计是以成本、扩展、维护和设计(松耦合)为优先考虑的。

注意:这里的假设是处理一个文件(单个文件)不会超过 15 分钟作为 lambda 的限制。如果文件的处理时间超过 15 分钟,上述解决方案将不起作用。如果您确认,我可以提供另一种解决方案。

【讨论】:

  • 非常感谢!!!对于这个解决方案。这看起来不错,但必须对此进行测试。处理一个文件可能不需要 15 分钟。但如果解决方案没有任何时间限制,那就更好了。那么您能否简要分享一下解决方法?
  • 任何设计都有优点和缺点,并且最适合每个用例。如果您确认没有机会在 15 分钟内处理文件,您可以继续深入研究解决方案。如果您确定处理文件的时间超过 15 分钟,我们将提出全新的解决方案,而不是临时解决方案。
  • 明白!我将使用此解决方案进行测试并验证文件的处理时间(希望不会超过 15 分钟)。再次感谢您的好主意!
  • 很高兴它有帮助。如果有任何疑问,请告诉我
【解决方案2】:

一种方法(AWS 总是有很多方法)是通过 EventBridge 以前的 CloudWatch Events 和 AWS Lambda。我以前没有使用过 AWS Batch。

编写和部署您的 AWS Lambda 函数。在您的 Lambda 中,您可以访问 S3 存储桶、验证数据并将数据发送到数据库。

如果您打开 AWS 控制台,请转到您的 Lambda 函数。接下来添加 Trigger 并选择 EventBridge。

现在您可以创建新规则了。为了让它每天早上 8 点运行,您的日程表表达式为 cron(0 8 * * ? *)

注意事项:

  • 别忘了 Lambda 的运行时间永远不能超过 15 分钟
  • 计划表达式采用 UTC 而不是本地时间。 DST 是个问题。

【讨论】:

  • 非常感谢!!为答案。问题是在这种情况下,我无法保证完成这项工作需要多长时间。当有大量包含大量数据的文件时,可能需要 15 分钟以上。
猜你喜欢
  • 2023-04-05
  • 2014-01-28
  • 2013-02-02
  • 2021-07-06
  • 2017-05-11
  • 2020-06-01
  • 2019-09-24
  • 2014-09-17
  • 2011-12-10
相关资源
最近更新 更多