【问题标题】:How to schedule on-demand tasks on aws serverless如何在 aws serverless 上安排按需任务
【发布时间】:2021-07-04 04:17:48
【问题描述】:

我们正在 AWS 上开发无服务器应用程序。目前,我们有一个用例,我们希望用户能够为计划创建配置,以便在发送报告当天的特定时间向他们发送每日、每周或每月报告。我们有多个用户,每个用户可以有多个报告计划配置。

我想知道,在 AWS 上的无服务器应用程序上,此功能的最佳架构是什么?

我最初的想法是在数据库中创建一个表,其中包含每个用户的日程安排的详细信息,并创建一个每分钟运行一次的事件规则,以触发一个 lambda 函数,该函数检查该表并查看此表是否有任何作业时间触发与否。如果此时有任何时间表,它将发送报告。但是我的领导对这个解决方案有一个顾虑,因为这个解决方案经常访问数据库,这对数据库来说是一个负载(我们使用的是 aurora MySQL)。

【问题讨论】:

    标签: amazon-web-services scheduled-tasks serverless-framework serverless aws-serverless


    【解决方案1】:

    我不确定您将使用什么规模。但我认为你可以使用 cloudwatch events 最终触发 lambda 函数。

    因此,您的用户配置可以成为具有特定规则的 cloudwatch 事件,并且无论何时执行该规则都会触发 lambda 函数。

    我建议你通过这个:

    https://aws.amazon.com/blogs/mt/build-scheduler-as-a-service-amazon-cloudwatch-events-amazon-eventbridge-aws-lambda/

    看起来正是您正在寻找的。​​p>

    【讨论】:

    • 是的,我之前在构建打盹功能时遇到过这种模式。但是这个架构是打算为每个配置创建一个特定的规则,但是 AWS Event Bridge 对每个账户有一些限制,因为一个账户只能有 100 个事件总线,每个事件总线只能有 300 个规则,所以一个总线只能处理300计划配置。此架构不可扩展,因为我还将这些规则用于其他功能。在此处查看每个帐户的 EventBridge 配额:link
    • 因此该链接建议了多种方法。我相信第一个应该可以工作,因为它不使用事件桥;在这里,您为每个配置创建 cloudwatch 规则并让它们触发 lambda。
    猜你喜欢
    • 2017-01-20
    • 2011-02-20
    • 1970-01-01
    • 2014-05-10
    • 2020-08-28
    • 2022-01-12
    • 2012-05-02
    • 2013-03-30
    • 2021-12-05
    相关资源
    最近更新 更多